#include <Queue.h>
Public Types | |
typedef boost::shared_ptr< Queue > | shared_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::FieldTable & | getSettings () 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) |
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.
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] |