summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/MessageStore.h
diff options
context:
space:
mode:
authorCarl C. Trieloff <cctrieloff@apache.org>2007-08-15 18:13:02 +0000
committerCarl C. Trieloff <cctrieloff@apache.org>2007-08-15 18:13:02 +0000
commit7c966bd1fcb801e14e001237096470b9c7e87f1f (patch)
tree36409d01a360e3150a587fec1b9a30bcb5e8d89b /cpp/src/qpid/broker/MessageStore.h
parent3f2ac50fdb042c2c48ebbdc1e70e442f0bf1ab86 (diff)
downloadqpid-python-7c966bd1fcb801e14e001237096470b9c7e87f1f.tar.gz
async IO for broker store
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@566289 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/MessageStore.h')
-rw-r--r--cpp/src/qpid/broker/MessageStore.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/MessageStore.h b/cpp/src/qpid/broker/MessageStore.h
index cf7dae9888..36a7f8824e 100644
--- a/cpp/src/qpid/broker/MessageStore.h
+++ b/cpp/src/qpid/broker/MessageStore.h
@@ -104,7 +104,10 @@ public:
/**
* Enqueues a message, storing the message if it has not
* been previously stored and recording that the given
- * message is on the given queue.
+ * message is on the given queue.
+ *
+ * Note: that this is async so the return of the function does
+ * not mean the opperation is complete.
*
* @param msg the message to enqueue
* @param queue the name of the queue onto which it is to be enqueued
@@ -113,18 +116,34 @@ public:
* place or null for 'local' transactions
*/
virtual void enqueue(TransactionContext* ctxt, PersistableMessage& msg, const PersistableQueue& queue) = 0;
+
/**
* 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.
*
* @param msg the message to dequeue
- * @param queue the name of th queue from which it is to be dequeued
+ * @param queue the name of the queue from which it is to be dequeued
* @param xid (a pointer to) an identifier of the
* distributed transaction in which the operation takes
* place or null for 'local' transactions
*/
virtual void dequeue(TransactionContext* ctxt, PersistableMessage& msg, const PersistableQueue& queue) = 0;
+
+
+ /**
+ * Returns the number of outstanding AIO's for a given queue
+ *
+ * If 0, than all the enqueue / dequeues have been stored
+ * to disk
+ *
+ * @param queue the name of the queue to check for outstanding AIO
+ */
+ virtual u_int32_t outstandingQueueAIO(const PersistableQueue& queue) = 0;
+
virtual ~MessageStore(){}
};