public interface IModel
Summary
Common AMQP model, spanning the union of the
functionality offered by versions 0-8, 0-8qpid, 0-9 and
0-9-1 of AMQP.
Remarks
Extends the IDisposable interface, so that the "using"
statement can be used to scope the lifetime of a channel when
appropriate.
Property Summary
ShutdownEventArgs |
CloseReason (r)
|
Returns null if the session is still in a state
where it can be used, or the cause of its closure
otherwise. |
IBasicConsumer |
DefaultConsumer (rw)
|
Signalled when an unexpected message is delivered
Under certain circumstances it is possible for a channel to receive a
message delivery which does not match any consumer which is currently
set up via basicConsume(). This will occur after the following sequence
of events:
ctag = basicConsume(queue, consumer); // i.e. with explicit acks
// some deliveries take place but are not acked
basicCancel(ctag);
basicRecover(false);
Since requeue is specified to be false in the basicRecover, the spec
states that the message must be redelivered to "the original recipient"
- i.e. the same channel / consumer-tag. But the consumer is no longer
active.
In these circumstances, you can register a default consumer to handle
such deliveries. If no default consumer is registered an
InvalidOperationException will be thrown when such a delivery arrives.
Most people will not need to use this. |
bool |
IsOpen (r)
|
Returns true if the session is still in a state
where it can be used. Identical to checking if CloseReason
== null. |
ulong |
NextPublishSeqNo (r)
|
When in confirm mode, return the sequence number
of the next message to be published. |
Event Summary
Method Summary
void Abort()
|
Abort this session. |
void Abort(ushort replyCode, string replyText)
|
Abort this session. |
void BasicAck(ulong deliveryTag, bool multiple)
|
(Spec method) Acknowledge one or more delivered message(s). |
void BasicCancel(string consumerTag)
|
Delete a Basic content-class consumer. |
string BasicConsume(string queue, bool noAck, IBasicConsumer consumer)
|
Start a Basic content-class consumer. |
string BasicConsume(string queue, bool noAck, string consumerTag, IBasicConsumer consumer)
|
Start a Basic content-class consumer. |
string BasicConsume(string queue, bool noAck, string consumerTag, bool noLocal, bool exclusive, IDictionary arguments, IBasicConsumer consumer)
|
Start a Basic content-class consumer. |
string BasicConsume(string queue, bool noAck, string consumerTag, IDictionary arguments, IBasicConsumer consumer)
|
Start a Basic content-class consumer. |
BasicGetResult BasicGet(string queue, bool noAck)
|
(Spec method) Retrieve an individual message, if
one is available; returns null if the server answers that
no messages are currently available. See also
IModel.BasicAck. |
void BasicNack(ulong deliveryTag, bool multiple, bool requeue)
|
Reject one or more delivered message(s). |
void BasicPublish(PublicationAddress addr, IBasicProperties basicProperties, byte[] body)
|
(Spec method) Convenience overload of BasicPublish. |
void BasicPublish(string exchange, string routingKey, IBasicProperties basicProperties, byte[] body)
|
(Spec method) Convenience overload of BasicPublish. |
void BasicPublish(string exchange, string routingKey, bool mandatory, bool immediate, IBasicProperties basicProperties, byte[] body)
|
(Spec method) Publish a message using the Basic
content-class. |
void BasicQos(uint prefetchSize, ushort prefetchCount, bool global)
|
(Spec method) Configures QoS parameters of the Basic content-class. |
void BasicRecover(bool requeue)
|
(Spec method) |
void BasicRecoverAsync(bool requeue)
|
(Spec method) |
void BasicReject(ulong deliveryTag, bool requeue)
|
(Spec method) Reject a delivered message. |
void ChannelFlow(bool active)
|
(Spec method) Channel flow control functionality. |
void Close()
|
Close this session. |
void Close(ushort replyCode, string replyText)
|
Close this session. |
void ConfirmSelect()
|
Enable publisher acknowledgements. |
IBasicProperties CreateBasicProperties()
|
Construct a completely empty content header for
use with the Basic content class. |
IFileProperties CreateFileProperties()
|
Construct a completely empty content header for
use with the File content class.
(unsupported in AMQP 0-9-1) |
IStreamProperties CreateStreamProperties()
|
Construct a completely empty content header for
use with the Stream content class.
(unsupported in AMQP 0-9-1) |
void DtxSelect()
|
(Spec method) Enable DTX mode for this session.
(unsupported in AMQP 0-9-1) |
void DtxStart(string dtxIdentifier)
|
(Spec method, unsupported in AMQP 0-9-1) |
void ExchangeBind(string destination, string source, string routingKey)
|
(Extension method) Bind an exchange to an exchange. |
void ExchangeBind(string destination, string source, string routingKey, IDictionary arguments)
|
(Extension method) Bind an exchange to an exchange. |
void ExchangeDeclare(string exchange, string type)
|
(Spec method) Declare an exchange. |
void ExchangeDeclare(string exchange, string type, bool durable)
|
(Spec method) Declare an exchange. |
void ExchangeDeclare(string exchange, string type, bool durable, bool autoDelete, IDictionary arguments)
|
(Spec method) Declare an exchange. |
void ExchangeDeclarePassive(string exchange)
|
(Spec method) Declare an exchange. |
void ExchangeDelete(string exchange)
|
(Spec method) Delete an exchange. |
void ExchangeDelete(string exchange, bool ifUnused)
|
(Spec method) Delete an exchange. |
void ExchangeUnbind(string destination, string source, string routingKey)
|
(Extension method) Unbind an exchange from an exchange. |
void ExchangeUnbind(string destination, string source, string routingKey, IDictionary arguments)
|
(Extension method) Unbind an exchange from an exchange. |
void QueueBind(string queue, string exchange, string routingKey)
|
(Spec method) Bind a queue to an exchange. |
void QueueBind(string queue, string exchange, string routingKey, IDictionary arguments)
|
(Spec method) Bind a queue to an exchange. |
string QueueDeclare()
|
(Spec method) Declare a queue. |
string QueueDeclare(string queue, bool durable, bool exclusive, bool autoDelete, IDictionary arguments)
|
(Spec method) Declare a queue. |
string QueueDeclarePassive(string queue)
|
Declare a queue passively. |
uint QueueDelete(string queue)
|
(Spec method) Delete a queue. |
uint QueueDelete(string queue, bool ifUnused, bool ifEmpty)
|
(Spec method) Delete a queue. |
uint QueuePurge(string queue)
|
(Spec method) Purge a queue of messages. |
void QueueUnbind(string queue, string exchange, string routingKey, IDictionary arguments)
|
(Spec method) Unbind a queue from an exchange. |
void TxCommit()
|
(Spec method) Commit this session's active TX
transaction. |
void TxRollback()
|
(Spec method) Roll back this session's active TX
transaction. |
void TxSelect()
|
(Spec method) Enable TX mode for this session. |
Property Detail
ShutdownEventArgs CloseReason (r)
Summary
Returns null if the session is still in a state
where it can be used, or the cause of its closure
otherwise.
IBasicConsumer DefaultConsumer (rw)
Summary
Signalled when an unexpected message is delivered
Under certain circumstances it is possible for a channel to receive a
message delivery which does not match any consumer which is currently
set up via basicConsume(). This will occur after the following sequence
of events:
ctag = basicConsume(queue, consumer); // i.e. with explicit acks
// some deliveries take place but are not acked
basicCancel(ctag);
basicRecover(false);
Since requeue is specified to be false in the basicRecover, the spec
states that the message must be redelivered to "the original recipient"
- i.e. the same channel / consumer-tag. But the consumer is no longer
active.
In these circumstances, you can register a default consumer to handle
such deliveries. If no default consumer is registered an
InvalidOperationException will be thrown when such a delivery arrives.
Most people will not need to use this.
bool IsOpen (r)
Summary
Returns true if the session is still in a state
where it can be used. Identical to checking if CloseReason
== null.
ulong NextPublishSeqNo (r)
Summary
When in confirm mode, return the sequence number
of the next message to be published.
Event Detail
BasicAckEventHandler BasicAcks
Summary
Signalled when a Basic.Ack command arrives from
the broker.
BasicNackEventHandler BasicNacks
Summary
Signalled when a Basic.Nack command arrives from
the broker.
BasicRecoverOkEventHandler BasicRecoverOk
Summary
All messages received before this fires that haven't been
ack'ed will be redelivered. All messages received afterwards won't
be.
Handlers for this event are invoked by the connection thread.
It is sometimes useful to allow that thread to know that a recover-ok
has been received, rather than the thread that invoked BasicRecover().
BasicReturnEventHandler BasicReturn
Summary
Signalled when a Basic.Return command arrives from
the broker.
CallbackExceptionEventHandler CallbackException
Summary
Signalled when an exception occurs in a callback
invoked by the model.
Remarks
Examples of cases where this event will be signalled
include exceptions thrown in IBasicConsumer methods, or
exceptions thrown in ModelShutdownEventHandler delegates
etc.
FlowControlEventHandler FlowControl
ModelShutdownEventHandler ModelShutdown
Summary
Notifies the destruction of the model.
Remarks
If the model is already destroyed at the time an event
handler is added to this event, the event handler will be
fired immediately.
Method Detail
Abort
void Abort()
Summary
Abort this session.
Remarks
If the session is already closed (or closing), then this
method does nothing but wait for the in-progress close
operation to complete. This method will not return to the
caller until the shutdown is complete.
In comparison to normal Close() method, Abort() will not throw
AlreadyClosedException or IOException during closing model.
Abort
void Abort(ushort replyCode, string replyText)
void |
| replyCode |
ushort |
| replyText |
string |
|
Summary
Abort this session.
Remarks
The method behaves in the same way as Abort(), with the only
difference that the model is closed with the given model
close code and message.
The close code (See under "Reply Codes" in the AMQP specification)
A message indicating the reason for closing the model
BasicAck
void BasicAck(ulong deliveryTag, bool multiple)
void |
| deliveryTag |
ulong |
| multiple |
bool |
|
Summary
(Spec method) Acknowledge one or more delivered message(s).
BasicCancel
void BasicCancel(string consumerTag)
Summary
Delete a Basic content-class consumer.
BasicConsume
string BasicConsume(string queue, bool noAck, IBasicConsumer consumer)
Summary
Start a Basic content-class consumer.
Remarks
The consumer is started with noAck=false (i.e. BasicAck is required),
an empty consumer tag (i.e. the server creates and returns a fresh consumer tag),
noLocal=false and exclusive=false.
BasicConsume
string BasicConsume(string queue, bool noAck, string consumerTag, IBasicConsumer consumer)
Summary
Start a Basic content-class consumer.
Remarks
The consumer is started with
an empty consumer tag (i.e. the server creates and returns a fresh consumer tag),
noLocal=false and exclusive=false.
BasicConsume
string BasicConsume(string queue, bool noAck, string consumerTag, bool noLocal, bool exclusive, IDictionary arguments, IBasicConsumer consumer)
string |
| queue |
string |
| noAck |
bool |
| consumerTag |
string |
| noLocal |
bool |
| exclusive |
bool |
| arguments |
IDictionary |
| consumer |
IBasicConsumer |
|
Summary
Start a Basic content-class consumer.
BasicConsume
string BasicConsume(string queue, bool noAck, string consumerTag, IDictionary arguments, IBasicConsumer consumer)
string |
| queue |
string |
| noAck |
bool |
| consumerTag |
string |
| arguments |
IDictionary |
| consumer |
IBasicConsumer |
|
Summary
Start a Basic content-class consumer.
Remarks
The consumer is started with
noLocal=false and exclusive=false.
BasicGet
BasicGetResult BasicGet(string queue, bool noAck)
Summary
(Spec method) Retrieve an individual message, if
one is available; returns null if the server answers that
no messages are currently available. See also
IModel.BasicAck.
BasicNack
void BasicNack(ulong deliveryTag, bool multiple, bool requeue)
void |
| deliveryTag |
ulong |
| multiple |
bool |
| requeue |
bool |
|
Summary
Reject one or more delivered message(s).
BasicPublish
void BasicPublish(PublicationAddress addr, IBasicProperties basicProperties, byte[] body)
Summary
(Spec method) Convenience overload of BasicPublish.
Remarks
The publication occurs with mandatory=false and immediate=false.
BasicPublish
void BasicPublish(string exchange, string routingKey, IBasicProperties basicProperties, byte[] body)
Summary
(Spec method) Convenience overload of BasicPublish.
Remarks
The publication occurs with mandatory=false and immediate=false.
BasicPublish
void BasicPublish(string exchange, string routingKey, bool mandatory, bool immediate, IBasicProperties basicProperties, byte[] body)
void |
| exchange |
string |
| routingKey |
string |
| mandatory |
bool |
| immediate |
bool |
| basicProperties |
IBasicProperties |
| body |
byte[] |
|
Summary
(Spec method) Publish a message using the Basic
content-class.
BasicQos
void BasicQos(uint prefetchSize, ushort prefetchCount, bool global)
void |
| prefetchSize |
uint |
| prefetchCount |
ushort |
| global |
bool |
|
Summary
(Spec method) Configures QoS parameters of the Basic content-class.
BasicRecover
void BasicRecover(bool requeue)
BasicRecoverAsync
void BasicRecoverAsync(bool requeue)
BasicReject
void BasicReject(ulong deliveryTag, bool requeue)
void |
| deliveryTag |
ulong |
| requeue |
bool |
|
Summary
(Spec method) Reject a delivered message.
ChannelFlow
void ChannelFlow(bool active)
Summary
(Spec method) Channel flow control functionality.
Close
void Close()
Summary
Close this session.
Remarks
If the session is already closed (or closing), then this
method does nothing but wait for the in-progress close
operation to complete. This method will not return to the
caller until the shutdown is complete.
Close
void Close(ushort replyCode, string replyText)
void |
| replyCode |
ushort |
| replyText |
string |
|
Summary
Close this session.
Remarks
The method behaves in the same way as Close(), with the only
difference that the model is closed with the given model
close code and message.
The close code (See under "Reply Codes" in the AMQP specification)
A message indicating the reason for closing the model
ConfirmSelect
void ConfirmSelect()
Summary
Enable publisher acknowledgements.
CreateBasicProperties
IBasicProperties CreateBasicProperties()
Summary
Construct a completely empty content header for
use with the Basic content class.
CreateFileProperties
IFileProperties CreateFileProperties()
Summary
Construct a completely empty content header for
use with the File content class.
(unsupported in AMQP 0-9-1)
CreateStreamProperties
IStreamProperties CreateStreamProperties()
Summary
Construct a completely empty content header for
use with the Stream content class.
(unsupported in AMQP 0-9-1)
DtxSelect
void DtxSelect()
Summary
(Spec method) Enable DTX mode for this session.
(unsupported in AMQP 0-9-1)
DtxStart
void DtxStart(string dtxIdentifier)
Summary
(Spec method, unsupported in AMQP 0-9-1)
ExchangeBind
void ExchangeBind(string destination, string source, string routingKey)
void |
| destination |
string |
| source |
string |
| routingKey |
string |
|
Summary
(Extension method) Bind an exchange to an exchange.
ExchangeBind
void ExchangeBind(string destination, string source, string routingKey, IDictionary arguments)
void |
| destination |
string |
| source |
string |
| routingKey |
string |
| arguments |
IDictionary |
|
Summary
(Extension method) Bind an exchange to an exchange.
ExchangeDeclare
void ExchangeDeclare(string exchange, string type)
void |
| exchange |
string |
| type |
string |
|
Summary
(Spec method) Declare an exchange.
Remarks
The exchange is declared non-passive, non-durable, non-autodelete, and
non-internal, with no arguments. The "nowait" option is not
exercised.
ExchangeDeclare
void ExchangeDeclare(string exchange, string type, bool durable)
void |
| exchange |
string |
| type |
string |
| durable |
bool |
|
Summary
(Spec method) Declare an exchange.
Remarks
The exchange is declared non-passive, non-autodelete, and
non-internal, with no arguments. The "nowait" option is not
exercised.
ExchangeDeclare
void ExchangeDeclare(string exchange, string type, bool durable, bool autoDelete, IDictionary arguments)
void |
| exchange |
string |
| type |
string |
| durable |
bool |
| autoDelete |
bool |
| arguments |
IDictionary |
|
Summary
(Spec method) Declare an exchange.
Remarks
The exchange is declared non-passive and non-internal.
The "nowait" option is not exercised.
ExchangeDeclarePassive
void ExchangeDeclarePassive(string exchange)
Summary
(Spec method) Declare an exchange.
Remarks
The exchange is declared passive.
ExchangeDelete
void ExchangeDelete(string exchange)
Summary
(Spec method) Delete an exchange.
Remarks
The exchange is deleted regardless of any queue bindings.
ExchangeDelete
void ExchangeDelete(string exchange, bool ifUnused)
void |
| exchange |
string |
| ifUnused |
bool |
|
Summary
(Spec method) Delete an exchange.
ExchangeUnbind
void ExchangeUnbind(string destination, string source, string routingKey)
void |
| destination |
string |
| source |
string |
| routingKey |
string |
|
Summary
(Extension method) Unbind an exchange from an exchange.
ExchangeUnbind
void ExchangeUnbind(string destination, string source, string routingKey, IDictionary arguments)
void |
| destination |
string |
| source |
string |
| routingKey |
string |
| arguments |
IDictionary |
|
Summary
(Extension method) Unbind an exchange from an exchange.
QueueBind
void QueueBind(string queue, string exchange, string routingKey)
void |
| queue |
string |
| exchange |
string |
| routingKey |
string |
|
Summary
(Spec method) Bind a queue to an exchange.
QueueBind
void QueueBind(string queue, string exchange, string routingKey, IDictionary arguments)
void |
| queue |
string |
| exchange |
string |
| routingKey |
string |
| arguments |
IDictionary |
|
Summary
(Spec method) Bind a queue to an exchange.
QueueDeclare
string QueueDeclare()
Summary
(Spec method) Declare a queue.
Remarks
The queue is declared non-passive, non-durable,
but exclusive and autodelete, with no arguments. The
server autogenerates a name for the queue - the generated
name is the return value of this method.
QueueDeclare
string QueueDeclare(string queue, bool durable, bool exclusive, bool autoDelete, IDictionary arguments)
string |
| queue |
string |
| durable |
bool |
| exclusive |
bool |
| autoDelete |
bool |
| arguments |
IDictionary |
|
Summary
(Spec method) Declare a queue.
QueueDeclarePassive
string QueueDeclarePassive(string queue)
Summary
Declare a queue passively.
Remarks
The queue is declared passive, non-durable,
non-exclusive, and non-autodelete, with no arguments.
The queue is declared passively; i.e. only check if it exists.
QueueDelete
uint QueueDelete(string queue)
Summary
(Spec method) Delete a queue.
Remarks
Returns the number of messages purged during queue
deletion.
QueueDelete
uint QueueDelete(string queue, bool ifUnused, bool ifEmpty)
uint |
| queue |
string |
| ifUnused |
bool |
| ifEmpty |
bool |
|
Summary
(Spec method) Delete a queue.
Remarks
Returns the number of messages purged during queue
deletion.
uint.MaxValue
.
QueuePurge
uint QueuePurge(string queue)
Summary
(Spec method) Purge a queue of messages.
Remarks
Returns the number of messages purged.
QueueUnbind
void QueueUnbind(string queue, string exchange, string routingKey, IDictionary arguments)
void |
| queue |
string |
| exchange |
string |
| routingKey |
string |
| arguments |
IDictionary |
|
Summary
(Spec method) Unbind a queue from an exchange.
Remarks
Note: This operation is only supported when communicating
using AMQP protocol version 0-9, or when communicating with
a 0-8 broker that has been enhanced with the unofficial
addition of a queue.unbind method.
TxCommit
void TxCommit()
Summary
(Spec method) Commit this session's active TX
transaction.
TxRollback
void TxRollback()
Summary
(Spec method) Roll back this session's active TX
transaction.
TxSelect
void TxSelect()
Summary
(Spec method) Enable TX mode for this session.