qpid::broker::Queue Class Reference

The brokers representation of an amqp queue. More...

#include <Queue.h>

Inheritance diagram for qpid::broker::Queue:

Inheritance graph
[legend]
Collaboration diagram for qpid::broker::Queue:

Collaboration graph
[legend]

List of all members.

Public Types

typedef boost::shared_ptr< Queueshared_ptr
typedef std::vector< shared_ptr > vector

Public Member Functions

virtual void notifyDurableIOComplete ()
 call back to signal async AIO writes have completed (enqueue/dequeue etc)
 Queue (const string &name, bool autodelete=false, MessageStore *const store=0, const OwnershipToken *const owner=0, management::Manageable *parent=0)
bool dispatch (Consumer &)
void create (const qpid::framing::FieldTable &settings)
void configure (const qpid::framing::FieldTable &settings)
void destroy ()
void bound (const string &exchange, const string &key, const qpid::framing::FieldTable &args)
void unbind (ExchangeRegistry &exchanges, Queue::shared_ptr shared_ref)
bool acquire (const QueuedMessage &msg)
void deliver (boost::intrusive_ptr< Message > &msg)
 Delivers a message to the queue.
void process (boost::intrusive_ptr< Message > &msg)
 Dispatches the messages immediately to a consumer if one is available or stores it for later if not.
void requeue (const QueuedMessage &msg)
 Returns a message to the in-memory queue (due to lack of acknowledegement from a receiver).
void recover (boost::intrusive_ptr< Message > &msg)
 Used during recovery to add stored messages back to the queue.
void consume (Consumer &c, bool exclusive=false)
void cancel (Consumer &c)
uint32_t purge ()
uint32_t getMessageCount () const
uint32_t getConsumerCount () const
const string & getName () const
bool isExclusiveOwner (const OwnershipToken *const o) const
void releaseExclusiveOwnership ()
bool setExclusiveOwner (const OwnershipToken *const o)
bool hasExclusiveConsumer () const
bool hasExclusiveOwner () const
bool isDurable () const
const framing::FieldTablegetSettings () const
bool isAutoDelete () const
bool canAutoDelete () const
bool enqueue (TransactionContext *ctxt, boost::intrusive_ptr< Message > msg)
bool dequeue (TransactionContext *ctxt, boost::intrusive_ptr< Message > msg)
 dequeue from store (only done once messages is acknowledged)
QueuedMessage dequeue ()
 dequeues from memory only
const QueuePolicy * getPolicy ()
void setAlternateExchange (boost::shared_ptr< Exchange > exchange)
boost::shared_ptr< Exchange > getAlternateExchange ()
bool isLocal (boost::intrusive_ptr< Message > &msg)
uint64_t getPersistenceId () const
 Returns any identifier the store may have attached to this object.
void setPersistenceId (uint64_t persistenceId) const
 Allows the store to attach its own identifier to this object.
void encode (framing::Buffer &buffer) const
 Encodes the persistable state of this object into the supplied buffer.
uint32_t encodedSize () const
virtual void setExternalQueueStore (ExternalQueueStore *inst)
management::ManagementObject::shared_ptr GetManagementObject (void) const
management::Manageable::status_t ManagementMethod (uint32_t methodId, management::Args &args)

Static Public Member Functions

static Queue::shared_ptr decode (QueueRegistry &queues, framing::Buffer &buffer)
static void tryAutoDelete (Broker &broker, Queue::shared_ptr)


Detailed Description

The brokers representation of an amqp queue.

Messages are delivered to a queue from where they can be dispatched to registered consumers or be stored until dequeued or until one or more consumers registers.


Member Function Documentation

virtual void qpid::broker::Queue::notifyDurableIOComplete (  )  [virtual]

call back to signal async AIO writes have completed (enqueue/dequeue etc)

Note: DO NOT do work on this callback, if you block this callback you will block the store.

Implements qpid::broker::PersistableQueue.

void qpid::broker::Queue::deliver ( boost::intrusive_ptr< Message > &  msg  ) 

Delivers a message to the queue.

Will record it as enqueued if persistent then process it.

void qpid::broker::Queue::requeue ( const QueuedMessage &  msg  ) 

Returns a message to the in-memory queue (due to lack of acknowledegement from a receiver).

If a consumer is available it will be dispatched immediately, else it will be returned to the front of the queue.

uint32_t qpid::broker::Queue::encodedSize (  )  const [virtual]

Returns:
the size of the buffer needed to encode this object

Implements qpid::broker::Persistable.


The documentation for this class was generated from the following file:

Generated on Thu May 15 22:23:34 2008 for Qpid by  doxygen 1.5.5