00001 #ifndef _broker_PersistableQueue_h
00002 #define _broker_PersistableQueue_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <string>
00026 #include "Persistable.h"
00027 #include "qpid/management/Manageable.h"
00028 #include <boost/shared_ptr.hpp>
00029
00030 namespace qpid {
00031 namespace broker {
00032
00033
00039 class ExternalQueueStore : public management::Manageable
00040 {
00041 public:
00042 virtual ~ExternalQueueStore() {};
00043
00044 };
00045
00046
00051 class PersistableQueue : public Persistable
00052 {
00053 public:
00054 typedef boost::shared_ptr<PersistableQueue> shared_ptr;
00055
00056 virtual const std::string& getName() const = 0;
00057 virtual ~PersistableQueue() {
00058 if (externalQueueStore)
00059 delete externalQueueStore;
00060 };
00061
00062 virtual void setExternalQueueStore(ExternalQueueStore* inst) = 0;
00063
00064 inline ExternalQueueStore* getExternalQueueStore() const {return externalQueueStore;};
00065
00066 PersistableQueue():externalQueueStore(NULL){
00067 };
00068
00069
00077 virtual void notifyDurableIOComplete() = 0;
00078 protected:
00079
00080 ExternalQueueStore* externalQueueStore;
00081
00082 };
00083
00084 }}
00085
00086
00087 #endif