summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/broker/PersistableQueue.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/PersistableQueue.h b/cpp/src/qpid/broker/PersistableQueue.h
index 4ba08c5998..f98bf7e871 100644
--- a/cpp/src/qpid/broker/PersistableQueue.h
+++ b/cpp/src/qpid/broker/PersistableQueue.h
@@ -28,6 +28,19 @@
namespace qpid {
namespace broker {
+
+/**
+* Empty class to be used by any module that wanted to set an external per queue store into
+* persistableQueue
+*/
+
+class ExternalQueueStore
+{
+
+
+};
+
+
/**
* The interface queues must expose to the MessageStore in order to be
* persistable.
@@ -37,7 +50,17 @@ class PersistableQueue : public Persistable
public:
virtual const std::string& getName() const = 0;
- virtual ~PersistableQueue() {};
+ virtual ~PersistableQueue() {
+ if (externalQueueStore)
+ delete externalQueueStore;
+ };
+
+ inline void setExternalQueueStore(ExternalQueueStore* inst) {externalQueueStore = inst;};
+ inline ExternalQueueStore* getExternalQueueStore() {return externalQueueStore;};
+
+ PersistableQueue():externalQueueStore(NULL){
+ };
+
protected:
/**
@@ -49,6 +72,8 @@ protected:
*/
virtual void notifyDurableIOComplete() = 0;
+ ExternalQueueStore* externalQueueStore;
+
};
}}