qpid::broker::NullMessageStore Class Reference

A null implementation of the MessageStore interface. More...

#include <NullMessageStore.h>

Inheritance diagram for qpid::broker::NullMessageStore:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

 NullMessageStore (bool warn=false)
virtual bool init (const Options *options)
 init the store, call before any other call.
virtual std::auto_ptr
< TransactionContext > 
begin ()
virtual std::auto_ptr
< TPCTransactionContext > 
begin (const std::string &xid)
virtual void prepare (TPCTransactionContext &txn)
virtual void commit (TransactionContext &txn)
virtual void abort (TransactionContext &txn)
virtual void collectPreparedXids (std::set< std::string > &xids)
virtual void create (PersistableQueue &queue, const framing::FieldTable &args)
 Record the existence of a durable queue.
virtual void destroy (PersistableQueue &queue)
 Destroy a durable queue.
virtual void create (const PersistableExchange &exchange, const framing::FieldTable &args)
 Record the existence of a durable exchange.
virtual void destroy (const PersistableExchange &exchange)
 Destroy a durable exchange.
virtual void bind (const PersistableExchange &exchange, const PersistableQueue &queue, const std::string &key, const framing::FieldTable &args)
 Record a binding.
virtual void unbind (const PersistableExchange &exchange, const PersistableQueue &queue, const std::string &key, const framing::FieldTable &args)
 Forget a binding.
virtual void create (const PersistableConfig &config)
 Record generic durable configuration.
virtual void destroy (const PersistableConfig &config)
 Destroy generic durable configuration.
virtual void recover (RecoveryManager &queues)
virtual void stage (const boost::intrusive_ptr< PersistableMessage > &msg)
 Stores a messages before it has been enqueued (enqueueing automatically stores the message so this is only required if storage is required prior to that point).
virtual void destroy (PersistableMessage &msg)
 Destroys a previously staged message.
virtual void appendContent (const boost::intrusive_ptr< const PersistableMessage > &msg, const std::string &data)
 Appends content to a previously staged message.
virtual void loadContent (const qpid::broker::PersistableQueue &queue, const boost::intrusive_ptr< const PersistableMessage > &msg, std::string &data, uint64_t offset, uint32_t length)
 Loads (a section) of content data for the specified message (previously stored through a call to stage or enqueue) into data.
virtual void enqueue (TransactionContext *ctxt, const boost::intrusive_ptr< PersistableMessage > &msg, const PersistableQueue &queue)
 Enqueues a message, storing the message if it has not been previously stored and recording that the given message is on the given queue.
virtual void dequeue (TransactionContext *ctxt, const boost::intrusive_ptr< PersistableMessage > &msg, const PersistableQueue &queue)
 Dequeues a message, recording that the given message is no longer on the given queue and deleting the message if it is no longer on any other queue.
virtual uint32_t outstandingQueueAIO (const PersistableQueue &queue)
 Returns the number of outstanding AIO's for a given queue.
virtual void flush (const qpid::broker::PersistableQueue &queue)
 Flushes all async messages to disk for the specified queue.


Detailed Description

A null implementation of the MessageStore interface.

Definition at line 36 of file NullMessageStore.h.


Member Function Documentation

virtual bool qpid::broker::NullMessageStore::init ( const Options options  )  [virtual]

init the store, call before any other call.

If not called, store is free to pick any defaults

Parameters:
options Options object provided by concrete store plug in.

Implements qpid::broker::MessageStore.

virtual void qpid::broker::NullMessageStore::stage ( const boost::intrusive_ptr< PersistableMessage > &  msg  )  [virtual]

Stores a messages before it has been enqueued (enqueueing automatically stores the message so this is only required if storage is required prior to that point).

If the message has not yet been stored it will store the headers as well as any content passed in. A persistence id will be set on the message which can be used to load the content or to append to it.

Implements qpid::broker::MessageStore.

virtual void qpid::broker::NullMessageStore::destroy ( PersistableMessage msg  )  [virtual]

Destroys a previously staged message.

This only needs to be called if the message is never enqueued. (Once enqueued, deletion will be automatic when the message is dequeued from all queues it was enqueued onto).

Implements qpid::broker::MessageStore.

virtual void qpid::broker::NullMessageStore::loadContent ( const qpid::broker::PersistableQueue queue,
const boost::intrusive_ptr< const PersistableMessage > &  msg,
std::string &  data,
uint64_t  offset,
uint32_t  length 
) [virtual]

Loads (a section) of content data for the specified message (previously stored through a call to stage or enqueue) into data.

The offset refers to the content only (i.e. an offset of 0 implies that the start of the content should be loaded, not the headers or related meta-data).

Implements qpid::broker::MessageStore.

virtual void qpid::broker::NullMessageStore::enqueue ( TransactionContext *  ctxt,
const boost::intrusive_ptr< PersistableMessage > &  msg,
const PersistableQueue queue 
) [virtual]

Enqueues a message, storing the message if it has not been previously stored and recording that the given message is on the given queue.

Note: that this is async so the return of the function does not mean the opperation is complete.

Parameters:
msg the message to enqueue
queue the name of the queue onto which it is to be enqueued
xid (a pointer to) an identifier of the distributed transaction in which the operation takes place or null for 'local' transactions

Implements qpid::broker::MessageStore.

virtual void qpid::broker::NullMessageStore::dequeue ( TransactionContext *  ctxt,
const boost::intrusive_ptr< PersistableMessage > &  msg,
const PersistableQueue queue 
) [virtual]

Dequeues a message, recording that the given message is no longer on the given queue and deleting the message if it is no longer on any other queue.

Note: that this is async so the return of the function does not mean the opperation is complete.

Parameters:
msg the message to dequeue
queue the name of the queue from which it is to be dequeued
xid (a pointer to) an identifier of the distributed transaction in which the operation takes place or null for 'local' transactions

Implements qpid::broker::MessageStore.

virtual uint32_t qpid::broker::NullMessageStore::outstandingQueueAIO ( const PersistableQueue queue  )  [virtual]

Returns the number of outstanding AIO's for a given queue.

If 0, than all the enqueue / dequeues have been stored to disk

Parameters:
queue the name of the queue to check for outstanding AIO

Implements qpid::broker::MessageStore.

virtual void qpid::broker::NullMessageStore::flush ( const qpid::broker::PersistableQueue queue  )  [virtual]

Flushes all async messages to disk for the specified queue.

Note: that this is async so the return of the function does not mean the opperation is complete.

Parameters:
queue the name of the queue from which it is to be dequeued

Implements qpid::broker::MessageStore.


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

Generated on Thu Oct 16 13:38:11 2008 for Qpid by  doxygen 1.5.6