00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _RecoveryManagerImpl_
00022 #define _RecoveryManagerImpl_
00023
00024 #include <list>
00025 #include "DtxManager.h"
00026 #include "ExchangeRegistry.h"
00027 #include "QueueRegistry.h"
00028 #include "LinkRegistry.h"
00029 #include "RecoveryManager.h"
00030
00031 namespace qpid {
00032 namespace broker {
00033
00034 class RecoveryManagerImpl : public RecoveryManager{
00035 QueueRegistry& queues;
00036 ExchangeRegistry& exchanges;
00037 LinkRegistry& links;
00038 DtxManager& dtxMgr;
00039 const uint64_t stagingThreshold;
00040 public:
00041 RecoveryManagerImpl(QueueRegistry& queues, ExchangeRegistry& exchanges, LinkRegistry& links,
00042 DtxManager& dtxMgr, uint64_t stagingThreshold);
00043 ~RecoveryManagerImpl();
00044
00045 RecoverableExchange::shared_ptr recoverExchange(framing::Buffer& buffer);
00046 RecoverableQueue::shared_ptr recoverQueue(framing::Buffer& buffer);
00047 RecoverableMessage::shared_ptr recoverMessage(framing::Buffer& buffer);
00048 RecoverableTransaction::shared_ptr recoverTransaction(const std::string& xid,
00049 std::auto_ptr<TPCTransactionContext> txn);
00050 RecoverableConfig::shared_ptr recoverConfig(framing::Buffer& buffer);
00051 void recoveryComplete();
00052 };
00053
00054
00055 }
00056 }
00057
00058
00059 #endif