summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/MessageStore.h
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2006-11-24 17:21:47 +0000
committerGordon Sim <gsim@apache.org>2006-11-24 17:21:47 +0000
commitd6befaeb77df8a09845e4c11070afe8ab4d5052d (patch)
treeb5f9ec40dedf2053d04c87f0117f0953a3026180 /cpp/src/qpid/broker/MessageStore.h
parentb442c78351bf330cf23b67e86aa17424d5a78966 (diff)
downloadqpid-python-d6befaeb77df8a09845e4c11070afe8ab4d5052d.tar.gz
Initial sketching out of staging functionality for large messages (i.e. allowing content to be stored as it arrives, rather than collecting it in memory until complete).
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@478923 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/MessageStore.h')
-rw-r--r--cpp/src/qpid/broker/MessageStore.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/MessageStore.h b/cpp/src/qpid/broker/MessageStore.h
index 13b5ba1152..322b03e67c 100644
--- a/cpp/src/qpid/broker/MessageStore.h
+++ b/cpp/src/qpid/broker/MessageStore.h
@@ -47,6 +47,25 @@ namespace qpid {
virtual void recover(RecoveryManager& queues) = 0;
/**
+ * 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 and any available content. If the
+ * message has already been stored it will append any
+ * currently held content.
+ */
+ virtual void stage(Message::shared_ptr& msg) = 0;
+
+ /**
+ * 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).
+ */
+ virtual void destroy(Message::shared_ptr& msg) = 0;
+
+ /**
* Enqueues a message, storing the message if it has not
* been previously stored and recording that the given
* message is on the given queue.