00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _RecoveryManager_
00022 #define _RecoveryManager_
00023
00024 #include "RecoverableExchange.h"
00025 #include "RecoverableQueue.h"
00026 #include "RecoverableMessage.h"
00027 #include "RecoverableTransaction.h"
00028 #include "RecoverableConfig.h"
00029 #include "TransactionalStore.h"
00030 #include "qpid/framing/Buffer.h"
00031
00032 namespace qpid {
00033 namespace broker {
00034
00035 class RecoveryManager{
00036 public:
00037 virtual ~RecoveryManager(){}
00038 virtual RecoverableExchange::shared_ptr recoverExchange(framing::Buffer& buffer) = 0;
00039 virtual RecoverableQueue::shared_ptr recoverQueue(framing::Buffer& buffer) = 0;
00040 virtual RecoverableMessage::shared_ptr recoverMessage(framing::Buffer& buffer) = 0;
00041 virtual RecoverableTransaction::shared_ptr recoverTransaction(const std::string& xid,
00042 std::auto_ptr<TPCTransactionContext> txn) = 0;
00043 virtual RecoverableConfig::shared_ptr recoverConfig(framing::Buffer& buffer) = 0;
00044
00045 virtual void recoveryComplete() = 0;
00046 };
00047
00048 class Recoverable {
00049 public:
00050 virtual ~Recoverable() {}
00051
00055 virtual void recover(RecoveryManager& recoverer) = 0;
00056 };
00057
00058 }}
00059
00060
00061 #endif