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 "RecoveryManager.h"
00029
00030 namespace qpid {
00031 namespace broker {
00032
00033 class RecoveryManagerImpl : public RecoveryManager{
00034 QueueRegistry& queues;
00035 ExchangeRegistry& exchanges;
00036 DtxManager& dtxMgr;
00037 const uint64_t stagingThreshold;
00038 public:
00039 RecoveryManagerImpl(QueueRegistry& queues, ExchangeRegistry& exchanges, DtxManager& dtxMgr, uint64_t stagingThreshold);
00040 ~RecoveryManagerImpl();
00041
00042 RecoverableExchange::shared_ptr recoverExchange(framing::Buffer& buffer);
00043 RecoverableQueue::shared_ptr recoverQueue(framing::Buffer& buffer);
00044 RecoverableMessage::shared_ptr recoverMessage(framing::Buffer& buffer);
00045 RecoverableTransaction::shared_ptr recoverTransaction(const std::string& xid,
00046 std::auto_ptr<TPCTransactionContext> txn);
00047 void recoveryComplete();
00048 };
00049
00050
00051 }
00052 }
00053
00054
00055 #endif