qpid::broker::MessageStoreModule Class Reference

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

#include <MessageStoreModule.h>

Inheritance diagram for qpid::broker::MessageStoreModule:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MessageStoreModule (const std::string &name)
std::auto_ptr< TransactionContext > begin ()
std::auto_ptr< TPCTransactionContext > begin (const std::string &xid)
void prepare (TPCTransactionContext &txn)
void commit (TransactionContext &txn)
void abort (TransactionContext &txn)
void collectPreparedXids (std::set< std::string > &xids)
void create (const PersistableQueue &queue)
 Record the existence of a durable queue.
void destroy (const PersistableQueue &queue)
 Destroy a durable queue.
void create (const PersistableExchange &exchange)
 Record the existence of a durable exchange.
void destroy (const PersistableExchange &exchange)
 Destroy a durable exchange.
void recover (RecoveryManager &queues)
 Request recovery of queue and message state from store.
void stage (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).
void destroy (PersistableMessage &msg)
 Destroys a previously staged message.
void appendContent (PersistableMessage &msg, const std::string &data)
 Appends content to a previously staged message.
void loadContent (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.
void enqueue (TransactionContext *ctxt, 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.
void dequeue (TransactionContext *ctxt, 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.

Detailed Description

A null implementation of the MessageStore interface.


Member Function Documentation

void qpid::broker::MessageStoreModule::dequeue ( TransactionContext *  ctxt,
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.

Parameters:
msg the message to dequeue
queue the name of th 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.

void qpid::broker::MessageStoreModule::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.

void qpid::broker::MessageStoreModule::enqueue ( TransactionContext *  ctxt,
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.

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.

void qpid::broker::MessageStoreModule::loadContent ( 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.

void qpid::broker::MessageStoreModule::stage ( 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.


The documentation for this class was generated from the following file:
Generated on Tue Apr 17 14:22:14 2007 for Qpid by  doxygen 1.4.7