com.rabbitmq.client.impl
Class ChannelN

java.lang.Object
  extended by com.rabbitmq.client.impl.AMQChannel
      extended by com.rabbitmq.client.impl.ChannelN
All Implemented Interfaces:
Channel

public class ChannelN
extends AMQChannel
implements Channel

Main interface to AMQP protocol functionality. Public API - Implementation of all AMQChannels except channel zero.

To open a channel,

 Connection conn = ...;
 ChannelN ch1 = conn.createChannel(1);
 ch1.open("");
 int ticket = ch1.accessRequest(realmName);
 


Nested Class Summary
 
Nested classes/interfaces inherited from class com.rabbitmq.client.impl.AMQChannel
AMQChannel.BlockingRpcContinuation<T>, AMQChannel.RpcContinuation, AMQChannel.SimpleBlockingRpcContinuation
 
Field Summary
 java.util.Map<java.lang.String,Consumer> _consumers
          Map from consumer tag to Consumer instance.
static int CLOSING_TIMEOUT
           
 ReturnListener returnListener
          Reference to the currently-active ReturnListener, or null if there is none.
 
Fields inherited from class com.rabbitmq.client.impl.AMQChannel
_activeRpc, _channelNumber, _commandAssembler, _connection, _isOpen
 
Constructor Summary
ChannelN(AMQConnection connection, int channelNumber)
          Construct a new channel on the given connection with the given channel number.
 
Method Summary
 int accessRequest(java.lang.String realm)
          Public API - Request an access ticket for the named realm For compatibility reasons it is possible to suppress the sending of the request with ConnectionParameters.setSuppressAccessRequest(boolean)
 int accessRequest(java.lang.String realm, boolean exclusive, boolean passive, boolean active, boolean write, boolean read)
          Public API - Request an access ticket for the named realm and the given role and exclusivity flags For compatibility reasons it is possible to suppress the sending of the request with ConnectionParameters.setSuppressAccessRequest(boolean)
 void basicAck(long deliveryTag, boolean multiple)
          Public API - Acknowledge one or several received messages.
 void basicCancel(java.lang.String consumerTag)
          Public API - Cancel a consumer.
 java.lang.String basicConsume(int ticket, java.lang.String queue, boolean noAck, Consumer callback)
          Public API - Start a non-nolocal, non-exclusive consumer, with a server-generated consumerTag.
 java.lang.String basicConsume(int ticket, java.lang.String queue, boolean noAck, java.lang.String consumerTag, boolean noLocal, boolean exclusive, Consumer callback)
          Public API - Start a consumer.
 java.lang.String basicConsume(int ticket, java.lang.String queue, boolean noAck, java.lang.String consumerTag, Consumer callback)
          Public API - Start a non-nolocal, non-exclusive consumer.
 java.lang.String basicConsume(int ticket, java.lang.String queue, Consumer callback)
          Public API - Start a non-nolocal, non-exclusive consumer, with explicit acknowledgements required and a server-generated consumerTag.
 GetResponse basicGet(int ticket, java.lang.String queue, boolean noAck)
          Public API - Retrieve a message from a queue using AMQP.Basic.Get
 void basicPublish(int ticket, java.lang.String exchange, java.lang.String routingKey, AMQP.BasicProperties props, byte[] body)
          Public API - Publish a message with both "mandatory" and "immediate" flags set to false
 void basicPublish(int ticket, java.lang.String exchange, java.lang.String routingKey, boolean mandatory, boolean immediate, AMQP.BasicProperties props, byte[] body)
          Public API - Publish a message
 void broadcastShutdownSignal(ShutdownSignalException signal)
          Protected API - sends a ShutdownSignal to all active consumers.
 void close(int closeCode, java.lang.String closeMessage)
          Public API - closes this channel with the given code and message
 void close(int closeCode, java.lang.String closeMessage, boolean initiatedByApplication, java.lang.Throwable cause)
          Protected API - close channel with code and message, indicating the source of the closure and a causing exception (null if none)
 AMQImpl.Exchange.DeclareOk exchangeDeclare(int ticket, java.lang.String exchange, java.lang.String type)
          Public API - Actively declare a non-autodelete, non-durable exchange with no extra arguments
 AMQImpl.Exchange.DeclareOk exchangeDeclare(int ticket, java.lang.String exchange, java.lang.String type, boolean durable)
          Public API - Actively declare a non-autodelete exchange with no extra arguments
 AMQImpl.Exchange.DeclareOk exchangeDeclare(int ticket, java.lang.String exchange, java.lang.String type, boolean passive, boolean durable, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments)
          Public API - Declare an exchange
 AMQImpl.Exchange.DeleteOk exchangeDelete(int ticket, java.lang.String exchange)
          Public API - Delete an exchange, without regard for whether it is in use or not
 AMQImpl.Exchange.DeleteOk exchangeDelete(int ticket, java.lang.String exchange, boolean ifUnused)
          Public API - Delete an exchange
 ReturnListener getReturnListener()
          Returns the current ReturnListener.
 void open()
          Package method: open the channel.
 boolean processAsync(Command command)
          Protected API - Filters the inbound command stream, processing Basic.Deliver, Basic.Return and Channel.Close specially.
 void processShutdownSignal(ShutdownSignalException signal)
          Protected API - overridden to broadcast the signal to all consumers before calling the superclass's method.
 AMQImpl.Queue.BindOk queueBind(int ticket, java.lang.String queue, java.lang.String exchange, java.lang.String routingKey)
          Public API - Bind a queue to an exchange, with no extra arguments.
 AMQImpl.Queue.BindOk queueBind(int ticket, java.lang.String queue, java.lang.String exchange, java.lang.String routingKey, java.util.Map<java.lang.String,java.lang.Object> arguments)
          Public API - Bind a queue to an exchange.
 AMQP.Queue.DeclareOk queueDeclare(int ticket)
          Public API - Actively declare a server-named exclusive, autodelete, non-durable queue.
 AMQImpl.Queue.DeclareOk queueDeclare(int ticket, java.lang.String queue)
          Public API - Actively declare a non-exclusive, non-autodelete, non-durable queue
 AMQImpl.Queue.DeclareOk queueDeclare(int ticket, java.lang.String queue, boolean durable)
          Public API - Actively declare a non-exclusive, non-autodelete queue
 AMQImpl.Queue.DeclareOk queueDeclare(int ticket, java.lang.String queue, boolean passive, boolean durable, boolean exclusive, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments)
          Public API - Declare a queue
 AMQImpl.Queue.DeleteOk queueDelete(int ticket, java.lang.String queue)
          Public API - Delete a queue, without regard for whether it is in use or has messages on it
 AMQImpl.Queue.DeleteOk queueDelete(int ticket, java.lang.String queue, boolean ifUnused, boolean ifEmpty)
          Public API - Delete a queue
 void releaseChannelNumber()
           
 void setReturnListener(ReturnListener listener)
          Sets the current ReturnListener.
 AMQImpl.Tx.CommitOk txCommit()
          Public API - Commits a TX transaction on this channel.
 AMQImpl.Tx.RollbackOk txRollback()
          Public API - Rolls back a TX transaction on this channel.
 AMQImpl.Tx.SelectOk txSelect()
          Public API - Enables TX mode on this channel.
 
Methods inherited from class com.rabbitmq.client.impl.AMQChannel
enqueueRpc, ensureIsOpen, exnWrappingRpc, getAMQConnection, getChannelNumber, getConnection, handleCompleteInboundCommand, handleFrame, isOpen, nextOutstandingRpc, quiescingRpc, rpc, rpc, toString, transmit, transmitAndEnqueue, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.rabbitmq.client.Channel
getChannelNumber, getConnection
 

Field Detail

CLOSING_TIMEOUT

public static final int CLOSING_TIMEOUT
See Also:
Constant Field Values

_consumers

public final java.util.Map<java.lang.String,Consumer> _consumers
Map from consumer tag to Consumer instance. Note that, in general, this map should ONLY ever be accessed from the connection's reader thread. We go to some pains to ensure this is the case - see the use of BlockingRpcContinuation to inject code into the reader thread in basicConsume and basicCancel.


returnListener

public volatile ReturnListener returnListener
Reference to the currently-active ReturnListener, or null if there is none.

Constructor Detail

ChannelN

public ChannelN(AMQConnection connection,
                int channelNumber)
Construct a new channel on the given connection with the given channel number. Usually not called directly - call Connection.createChannel instead.

Parameters:
connection - The connection associated with this channel
channelNumber - The channel number to be associated with this channel
See Also:
Connection.createChannel()
Method Detail

open

public void open()
          throws java.io.IOException
Package method: open the channel. This is only called from AMQConnection.

Throws:
java.io.IOException - if any problem is encountered

getReturnListener

public ReturnListener getReturnListener()
Returns the current ReturnListener.

Specified by:
getReturnListener in interface Channel
Returns:
an interface to the current return listener

setReturnListener

public void setReturnListener(ReturnListener listener)
Sets the current ReturnListener. A null argument is interpreted to mean "do not use a return listener".

Specified by:
setReturnListener in interface Channel
Parameters:
listener - the listener to use, or null indicating "don't use one".

broadcastShutdownSignal

public void broadcastShutdownSignal(ShutdownSignalException signal)
Protected API - sends a ShutdownSignal to all active consumers.

Parameters:
signal - an exception signalling channel shutdown

processShutdownSignal

public void processShutdownSignal(ShutdownSignalException signal)
Protected API - overridden to broadcast the signal to all consumers before calling the superclass's method.

Overrides:
processShutdownSignal in class AMQChannel
Parameters:
signal - the signal to handle

releaseChannelNumber

public void releaseChannelNumber()

processAsync

public boolean processAsync(Command command)
                     throws java.io.IOException
Protected API - Filters the inbound command stream, processing Basic.Deliver, Basic.Return and Channel.Close specially.

Specified by:
processAsync in class AMQChannel
Parameters:
command - the command to handle asynchronously
Returns:
true if we handled the command; otherwise the caller should consider it "unhandled"
Throws:
java.io.IOException

close

public void close(int closeCode,
                  java.lang.String closeMessage)
           throws java.io.IOException
Public API - closes this channel with the given code and message

Specified by:
close in interface Channel
Parameters:
closeCode - the close code (See under "Reply Codes" in the AMQP specification)
closeMessage - a message indicating the reason for closing the channel
Throws:
java.io.IOException - if an error is encountered

close

public void close(int closeCode,
                  java.lang.String closeMessage,
                  boolean initiatedByApplication,
                  java.lang.Throwable cause)
           throws java.io.IOException
Protected API - close channel with code and message, indicating the source of the closure and a causing exception (null if none)

Throws:
java.io.IOException

accessRequest

public int accessRequest(java.lang.String realm)
                  throws java.io.IOException
Public API - Request an access ticket for the named realm For compatibility reasons it is possible to suppress the sending of the request with ConnectionParameters.setSuppressAccessRequest(boolean)

Specified by:
accessRequest in interface Channel
Parameters:
realm - the name of the realm
Returns:
a valid access ticket
Throws:
java.io.IOException - if an error is encountered e.g. we don't have permission
See Also:
AMQP.Access.Request

accessRequest

public int accessRequest(java.lang.String realm,
                         boolean exclusive,
                         boolean passive,
                         boolean active,
                         boolean write,
                         boolean read)
                  throws java.io.IOException
Public API - Request an access ticket for the named realm and the given role and exclusivity flags For compatibility reasons it is possible to suppress the sending of the request with ConnectionParameters.setSuppressAccessRequest(boolean)

Specified by:
accessRequest in interface Channel
Parameters:
realm - the name of the realm
exclusive - true if we are requesting exclusive access
passive - true if we are requesting passive access
active - true if we are requesting active access
write - true if we are requesting write access
read - true if we are requesting read access
Returns:
a valid access ticket
Throws:
java.io.IOException - if an error is encountered e.g. we don't have permission
See Also:
AMQP.Access.Request

basicPublish

public void basicPublish(int ticket,
                         java.lang.String exchange,
                         java.lang.String routingKey,
                         AMQP.BasicProperties props,
                         byte[] body)
                  throws java.io.IOException
Public API - Publish a message with both "mandatory" and "immediate" flags set to false

Specified by:
basicPublish in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
exchange - the exchange to publish the message to
routingKey - the routing key
props - other properties for the message - routing headers etc
body - the message body
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Publish

basicPublish

public void basicPublish(int ticket,
                         java.lang.String exchange,
                         java.lang.String routingKey,
                         boolean mandatory,
                         boolean immediate,
                         AMQP.BasicProperties props,
                         byte[] body)
                  throws java.io.IOException
Public API - Publish a message

Specified by:
basicPublish in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
exchange - the exchange to publish the message to
routingKey - the routing key
mandatory - true if we are requesting a mandatory publish
immediate - true if we are requesting an immediate publish
props - other properties for the message - routing headers etc
body - the message body
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Publish

exchangeDeclare

public AMQImpl.Exchange.DeclareOk exchangeDeclare(int ticket,
                                                  java.lang.String exchange,
                                                  java.lang.String type,
                                                  boolean passive,
                                                  boolean durable,
                                                  boolean autoDelete,
                                                  java.util.Map<java.lang.String,java.lang.Object> arguments)
                                           throws java.io.IOException
Public API - Declare an exchange

Specified by:
exchangeDeclare in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
type - the exchange type
passive - true if we are passively declaring a exchange (asserting the exchange already exists)
durable - true if we are declaring a durable exchange (the exchange will survive a server restart)
autoDelete - true if the server should delete the exchange when it is no longer in use
arguments - other properties (construction arguments) for the exchange
Returns:
a declaration-confirm method to indicate the exchange was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Declare, AMQP.Exchange.DeclareOk

exchangeDeclare

public AMQImpl.Exchange.DeclareOk exchangeDeclare(int ticket,
                                                  java.lang.String exchange,
                                                  java.lang.String type,
                                                  boolean durable)
                                           throws java.io.IOException
Public API - Actively declare a non-autodelete exchange with no extra arguments

Specified by:
exchangeDeclare in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
type - the exchange type
durable - true if we are declaring a durable exchange (the exchange will survive a server restart)
Returns:
a declaration-confirm method to indicate the exchange was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Declare, AMQP.Exchange.DeclareOk

exchangeDeclare

public AMQImpl.Exchange.DeclareOk exchangeDeclare(int ticket,
                                                  java.lang.String exchange,
                                                  java.lang.String type)
                                           throws java.io.IOException
Public API - Actively declare a non-autodelete, non-durable exchange with no extra arguments

Specified by:
exchangeDeclare in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
type - the exchange type
Returns:
a deletion-confirm method to indicate the exchange was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Declare, AMQP.Exchange.DeclareOk

exchangeDelete

public AMQImpl.Exchange.DeleteOk exchangeDelete(int ticket,
                                                java.lang.String exchange,
                                                boolean ifUnused)
                                         throws java.io.IOException
Public API - Delete an exchange

Specified by:
exchangeDelete in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
ifUnused - true to indicate that the exchange is only to be deleted if it is unused
Returns:
a deletion-confirm method to indicate the exchange was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Delete, AMQP.Exchange.DeleteOk

exchangeDelete

public AMQImpl.Exchange.DeleteOk exchangeDelete(int ticket,
                                                java.lang.String exchange)
                                         throws java.io.IOException
Public API - Delete an exchange, without regard for whether it is in use or not

Specified by:
exchangeDelete in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
Returns:
a deletion-confirm method to indicate the exchange was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Delete, AMQP.Exchange.DeleteOk

queueDeclare

public AMQImpl.Queue.DeclareOk queueDeclare(int ticket,
                                            java.lang.String queue,
                                            boolean passive,
                                            boolean durable,
                                            boolean exclusive,
                                            boolean autoDelete,
                                            java.util.Map<java.lang.String,java.lang.Object> arguments)
                                     throws java.io.IOException
Public API - Declare a queue

Specified by:
queueDeclare in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
passive - true if we are passively declaring a queue (asserting the queue already exists)
durable - true if we are declaring a durable queue (the queue will survive a server restart)
exclusive - true if we are declaring an exclusive queue
autoDelete - true if we are declaring an autodelete queue (server will delete it when no longer in use)
arguments - other properties (construction arguments) for the queue
Returns:
a declaration-confirm method to indicate the queue was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Declare, AMQP.Queue.DeclareOk

queueDeclare

public AMQImpl.Queue.DeclareOk queueDeclare(int ticket,
                                            java.lang.String queue,
                                            boolean durable)
                                     throws java.io.IOException
Public API - Actively declare a non-exclusive, non-autodelete queue

Specified by:
queueDeclare in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
durable - true if we are declaring a durable exchange (the exchange will survive a server restart)
Returns:
a declaration-confirm method to indicate the exchange was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Declare, AMQP.Queue.DeclareOk

queueDeclare

public AMQImpl.Queue.DeclareOk queueDeclare(int ticket,
                                            java.lang.String queue)
                                     throws java.io.IOException
Public API - Actively declare a non-exclusive, non-autodelete, non-durable queue

Specified by:
queueDeclare in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
Returns:
a declaration-confirm method to indicate the queue was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Declare, AMQP.Queue.DeclareOk

queueDeclare

public AMQP.Queue.DeclareOk queueDeclare(int ticket)
                                  throws java.io.IOException
Public API - Actively declare a server-named exclusive, autodelete, non-durable queue. The name of the new queue is held in the "queue" field of the AMQP.Queue.DeclareOk result.

Specified by:
queueDeclare in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
Returns:
a declaration-confirm method to indicate the exchange was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Declare, AMQP.Queue.DeclareOk

queueDelete

public AMQImpl.Queue.DeleteOk queueDelete(int ticket,
                                          java.lang.String queue,
                                          boolean ifUnused,
                                          boolean ifEmpty)
                                   throws java.io.IOException
Public API - Delete a queue

Specified by:
queueDelete in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
ifUnused - true if the queue should be deleted only if not in use
ifEmpty - true if the queue should be deleted only if empty
Returns:
a deletion-confirm method to indicate the queue was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Delete, AMQP.Queue.DeleteOk

queueDelete

public AMQImpl.Queue.DeleteOk queueDelete(int ticket,
                                          java.lang.String queue)
                                   throws java.io.IOException
Public API - Delete a queue, without regard for whether it is in use or has messages on it

Specified by:
queueDelete in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
Returns:
a deletion-confirm method to indicate the queue was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Delete, AMQP.Queue.DeleteOk

queueBind

public AMQImpl.Queue.BindOk queueBind(int ticket,
                                      java.lang.String queue,
                                      java.lang.String exchange,
                                      java.lang.String routingKey,
                                      java.util.Map<java.lang.String,java.lang.Object> arguments)
                               throws java.io.IOException
Public API - Bind a queue to an exchange.

Specified by:
queueBind in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
exchange - the name of the exchange
routingKey - the routine key to use for the binding
arguments - other properties (binding parameters)
Returns:
a binding-confirm method if the binding was successfully created
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Bind, AMQP.Queue.BindOk

queueBind

public AMQImpl.Queue.BindOk queueBind(int ticket,
                                      java.lang.String queue,
                                      java.lang.String exchange,
                                      java.lang.String routingKey)
                               throws java.io.IOException
Public API - Bind a queue to an exchange, with no extra arguments.

Specified by:
queueBind in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
exchange - the name of the exchange
routingKey - the routine key to use for the binding
Returns:
a binding-confirm method if the binding was successfully created
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Bind, AMQP.Queue.BindOk

basicGet

public GetResponse basicGet(int ticket,
                            java.lang.String queue,
                            boolean noAck)
                     throws java.io.IOException
Public API - Retrieve a message from a queue using AMQP.Basic.Get

Specified by:
basicGet in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
noAck - true if no handshake is required
Returns:
a GetResponse containing the retrieved message data
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Get, AMQP.Basic.GetOk, AMQP.Basic.GetEmpty

basicAck

public void basicAck(long deliveryTag,
                     boolean multiple)
              throws java.io.IOException
Public API - Acknowledge one or several received messages. Supply the deliveryTag from the AMQP.Basic.GetOk or AMQP.Basic.Deliver method containing the received message being acknowledged.

Specified by:
basicAck in interface Channel
Parameters:
deliveryTag - the tag from the received AMQP.Basic.GetOk or AMQP.Basic.Deliver
multiple - true if we are acknowledging multiple messages with the same delivery tag
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Ack

basicConsume

public java.lang.String basicConsume(int ticket,
                                     java.lang.String queue,
                                     Consumer callback)
                              throws java.io.IOException
Public API - Start a non-nolocal, non-exclusive consumer, with explicit acknowledgements required and a server-generated consumerTag.

Specified by:
basicConsume in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
callback - an interface to the consumer object
Returns:
the consumerTag generated by the server
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Consume, AMQP.Basic.ConsumeOk, basicAck(long, boolean), basicConsume(int,String,boolean,String,boolean,boolean,Consumer)

basicConsume

public java.lang.String basicConsume(int ticket,
                                     java.lang.String queue,
                                     boolean noAck,
                                     Consumer callback)
                              throws java.io.IOException
Public API - Start a non-nolocal, non-exclusive consumer, with a server-generated consumerTag.

Specified by:
basicConsume in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
noAck - true if no handshake is required
callback - an interface to the consumer object
Returns:
the consumerTag generated by the server
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Consume, AMQP.Basic.ConsumeOk, basicConsume(int,String,boolean,String,boolean,boolean,Consumer)

basicConsume

public java.lang.String basicConsume(int ticket,
                                     java.lang.String queue,
                                     boolean noAck,
                                     java.lang.String consumerTag,
                                     Consumer callback)
                              throws java.io.IOException
Public API - Start a non-nolocal, non-exclusive consumer.

Specified by:
basicConsume in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
noAck - true if no handshake is required
consumerTag - a client-generated consumer tag to establish context
callback - an interface to the consumer object
Returns:
the consumerTag associated with the new consumer
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Consume, AMQP.Basic.ConsumeOk, basicConsume(int,String,boolean,String,boolean,boolean,Consumer)

basicConsume

public java.lang.String basicConsume(int ticket,
                                     java.lang.String queue,
                                     boolean noAck,
                                     java.lang.String consumerTag,
                                     boolean noLocal,
                                     boolean exclusive,
                                     Consumer callback)
                              throws java.io.IOException
Public API - Start a consumer. Calls the consumer's Consumer.handleConsumeOk(java.lang.String) method before returning.

Specified by:
basicConsume in interface Channel
Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
noAck - true if no handshake is required
consumerTag - a client-generated consumer tag to establish context
noLocal - flag set to true unless server local buffering is required
exclusive - true if this is an exclusive consumer
callback - an interface to the consumer object
Returns:
the consumerTag associated with the new consumer
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Consume, AMQP.Basic.ConsumeOk

basicCancel

public void basicCancel(java.lang.String consumerTag)
                 throws java.io.IOException
Public API - Cancel a consumer. Calls the consumer's Consumer.handleCancelOk(java.lang.String) method before returning.

Specified by:
basicCancel in interface Channel
Parameters:
consumerTag - a client- or server-generated consumer tag to establish context
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Cancel, AMQP.Basic.CancelOk

txSelect

public AMQImpl.Tx.SelectOk txSelect()
                             throws java.io.IOException
Public API - Enables TX mode on this channel.

Specified by:
txSelect in interface Channel
Returns:
a transaction-selection method to indicate the transaction was successfully initiated
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Tx.Select, AMQP.Tx.SelectOk

txCommit

public AMQImpl.Tx.CommitOk txCommit()
                             throws java.io.IOException
Public API - Commits a TX transaction on this channel.

Specified by:
txCommit in interface Channel
Returns:
a transaction-commit method to indicate the transaction was successfully committed
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Tx.Commit, AMQP.Tx.CommitOk

txRollback

public AMQImpl.Tx.RollbackOk txRollback()
                                 throws java.io.IOException
Public API - Rolls back a TX transaction on this channel.

Specified by:
txRollback in interface Channel
Returns:
a transaction-rollback method to indicate the transaction was successfully rolled back
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Tx.Rollback, AMQP.Tx.RollbackOk