summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/PersistableMessage.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/PersistableMessage.h')
-rw-r--r--cpp/src/qpid/broker/PersistableMessage.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/PersistableMessage.h b/cpp/src/qpid/broker/PersistableMessage.h
index 0274b41375..a968480249 100644
--- a/cpp/src/qpid/broker/PersistableMessage.h
+++ b/cpp/src/qpid/broker/PersistableMessage.h
@@ -68,8 +68,16 @@ class PersistableMessage : public Persistable
void enqueueAsync();
void dequeueAsync();
- bool contentReleased;
syncList synclist;
+ struct ContentReleaseState
+ {
+ bool blocked;
+ bool requested;
+ bool released;
+
+ ContentReleaseState();
+ };
+ ContentReleaseState contentReleaseState;
protected:
/** Called when all enqueues are complete for this message. */
@@ -97,6 +105,11 @@ class PersistableMessage : public Persistable
void flush();
bool isContentReleased() const;
+
+ void setStore(MessageStore*);
+ void requestContentRelease();
+ void blockContentRelease();
+ bool checkContentReleasable();
QPID_BROKER_EXTERN bool isEnqueueComplete();