diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/broker/PersistableQueue.h | 27 |
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; + }; }} |