diff options
Diffstat (limited to 'trunk/qpid/dotnet/Qpid.Messaging/IChannel.cs')
-rw-r--r-- | trunk/qpid/dotnet/Qpid.Messaging/IChannel.cs | 252 |
1 files changed, 0 insertions, 252 deletions
diff --git a/trunk/qpid/dotnet/Qpid.Messaging/IChannel.cs b/trunk/qpid/dotnet/Qpid.Messaging/IChannel.cs deleted file mode 100644 index 461867b34a..0000000000 --- a/trunk/qpid/dotnet/Qpid.Messaging/IChannel.cs +++ /dev/null @@ -1,252 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -using System; - -namespace Apache.Qpid.Messaging -{ - public delegate void MessageReceivedDelegate(IMessage msg); - - /// <summary> - /// IChannel provides methods to access the commands in AMQP that operate at the channel level. This can be summarized as - /// the ability to declare queues and exchanges, bind queues to exchanges, create messages of various types, declare transaction - /// boundaries (commit and rollback), and to set up producers and consumers on the channel. - /// - /// <p/>You can create a channel by using the CreateChannel() method - /// of the connection object. - /// - /// <p/><table id="crc"><caption>CRC Card</caption> - /// <tr><th> Responsibilities - /// <tr><td> Declare queues. - /// <tr><td> Declare exchanges. - /// <tr><td> Bind queues to exchanges. - /// <tr><td> Create messages. - /// <tr><td> Set up message consumers on the channel. - /// <tr><td> Set up message producers on the channel. - /// <tr><td> Commit the current transaction. - /// <tr><td> Roll-back the current transaction. - /// <tr><td> Close the channel. - /// </table> - /// </summary> - public interface IChannel : IDisposable, ICloseable - { - /// <summary> - /// Acknowledge mode for messages received. - /// </summary> - AcknowledgeMode AcknowledgeMode { get; } - - /// <summary> - /// True if the channel should use transactions. - /// </summary> - bool Transacted { get; } - - /// <summary> - /// Prefetch value to be used as the default for - /// consumers created on this channel. - /// </summary> - int DefaultPrefetch { get; } - - /// <summary> - /// Prefetch low value to be used as the default for - /// consumers created on this channel. - /// </summary> - int DefaultPrefetchLow { get; } - - /// <summary> - /// Prefetch high value to be used as the default for - /// consumers created on this channel. - /// </summary> - int DefaultPrefetchHigh { get; } - - /// <summary> - /// Declare a new exchange. - /// </summary> - /// <param name="exchangeName">Name of the exchange</param> - /// <param name="exchangeClass">Class of the exchange, from <see cref="ExchangeClassConstants"/></param> - void DeclareExchange(string exchangeName, string exchangeClass); - - /// <summary> - /// Declare a new exchange using the default exchange class. - /// </summary> - /// <param name="exchangeName">Name of the exchange</param> - void DeleteExchange(string exchangeName); - - /// <summary> - /// Declare a new queue with the specified set of arguments. - /// </summary> - /// <param name="queueName">Name of the queue</param> - /// <param name="isDurable">True if the queue should be durable</param> - /// <param name="isExclusive">True if the queue should be exclusive to this channel</param> - /// <param name="isAutoDelete">True if the queue should be deleted when the channel closes</param> - void DeclareQueue(string queueName, bool isDurable, bool isExclusive, bool isAutoDelete); - - /// <summary> - /// Delete a queue with the specifies arguments. - /// </summary> - /// <param name="queueName">Name of the queue to delete</param> - /// <param name="ifUnused">If true, the queue will not deleted if it has no consumers</param> - /// <param name="ifEmpty">If true, the queue will not deleted if it has no messages</param> - /// <param name="noWait">If true, the server will not respond to the method</param> - void DeleteQueue(string queueName, bool ifUnused, bool ifEmpty, bool noWait); - - /// <summary> - /// Generate a new Unique name to use for a queue. - /// </summary> - /// <returns>A unique name to this channel</returns> - string GenerateUniqueName(); - - /// <summary> - /// Removes all messages from a queue. - /// </summary> - /// <param name="queueName">Name of the queue to delete</param> - /// <param name="noWait">If true, the server will not respond to the method</param> - void PurgeQueue(string queueName, bool noWait); - - /// <summary> - /// Bind a queue to the specified exchange. - /// </summary> - /// <param name="queueName">Name of queue to bind</param> - /// <param name="exchangeName">Name of exchange to bind to</param> - /// <param name="routingKey">Routing key</param> - void Bind(string queueName, string exchangeName, string routingKey); - - /// <summary> - /// Bind a queue to the specified exchange. - /// </summary> - /// <param name="queueName">Name of queue to bind</param> - /// <param name="exchangeName">Name of exchange to bind to</param> - /// <param name="routingKey">Routing key</param> - /// <param name="args">Table of arguments for the binding. Used to bind with a Headers Exchange</param> - void Bind(string queueName, string exchangeName, string routingKey, IFieldTable args); - - /// <summary> - /// Create a new empty message with no body. - /// </summary> - /// <returns>The new message</returns> - IMessage CreateMessage(); - - /// <summary> - /// Create a new message of the specified MIME type. - /// </summary> - /// <param name="mimeType">The mime type to create</param> - /// <returns>The new message</returns> - IMessage CreateMessage(string mimeType); - - /// <summary> - /// Creates a new message for bytes (application/octet-stream). - /// </summary> - /// <returns>The new message</returns> - IBytesMessage CreateBytesMessage(); - - /// <summary> - /// Creates a new text message (text/plain) with empty content. - /// </summary> - /// <returns>The new message</returns> - ITextMessage CreateTextMessage(); - - /// <summary> - /// Creates a new text message (text/plain) with a body. - /// </summary> - /// <param name="initialValue">Initial body of the message</param> - /// <returns>The new message</returns> - ITextMessage CreateTextMessage(string initialValue); - - #region Consuming - - /// <summary> - /// Creates a new Consumer using the builder pattern. - /// </summary> - /// <param name="queueName">Name of queue to receive messages from</param> - /// <returns>The builder object</returns> - MessageConsumerBuilder CreateConsumerBuilder(string queueName); - - /// <summary> - /// Creates a new consumer. - /// </summary> - /// <param name="queueName">Name of queue to receive messages from</param> - /// <param name="prefetchLow">Low prefetch value</param> - /// <param name="prefetchHigh">High prefetch value</param> - /// <param name="noLocal">If true, messages sent on this channel will not be received by this consumer</param> - /// <param name="exclusive">If true, the consumer opens the queue in exclusive mode</param> - /// <returns>The new consumer</returns> - IMessageConsumer CreateConsumer(string queueName, - int prefetchLow, - int prefetchHigh, - bool noLocal, - bool exclusive); - - /// <summary> - /// Unsubscribe from a queue. - /// </summary> - /// <param name="subscriptionName">Subscription name</param> - void Unsubscribe(string subscriptionName); - - #endregion - - #region Publishing - - /// <summary> - /// Create a new message publisher using the builder pattern. - /// </summary> - /// <returns>The builder object</returns> - MessagePublisherBuilder CreatePublisherBuilder(); - - /// <summary> - /// Create a new message publisher. - /// </summary> - /// <param name="exchangeName">Name of exchange to publish to</param> - /// <param name="routingKey">Routing key</param> - /// <param name="deliveryMode">Default delivery mode</param> - /// <param name="timeToLive">Default TTL time of messages</param> - /// <param name="immediate">If true, sent immediately</param> - /// <param name="mandatory">If true, the broker will return an error - /// (as a connection exception) if the message cannot be delivered</param> - /// <param name="priority">Default message priority</param> - /// <returns>The new message publisher</returns> - IMessagePublisher CreatePublisher(string exchangeName, - string routingKey, - DeliveryMode deliveryMode, - long timeToLive, - bool immediate, - bool mandatory, - int priority); - - #endregion - - #region Transactions - - /// <summary> - /// Recover after transaction failure. - /// </summary> - void Recover(); - - /// <summary> - /// Commit the transaction. - /// </summary> - void Commit(); - - /// <summary> - /// Rollback the transaction. - /// </summary> - void Rollback(); - - #endregion - } -} |