Learner :: Learner( const Config * poConfig, const MsgTransport * poMsgTransport, const Instance * poInstance, const Acceptor * poAcceptor, const LogStorage * poLogStorage, const IOLoop * poIOLoop, const CheckpointMgr * poCheckpointMgr, const SMFac * poSMFac) : Base(poConfig, poMsgTransport, poInstance), m_oLearnerState(poConfig, poLogStorage), m_oPaxosLog(poLogStorage), m_oLearnerSender((Config *)poConfig, this, &m_oPaxosLog), m_oCheckpointReceiver((Config *)poConfig, (LogStorage *)poLogStorage) { m_poAcceptor = (Acceptor *)poAcceptor; InitForNewPaxosInstance(); m_iAskforlearn_noopTimerID = 0; m_poIOLoop = (IOLoop *)poIOLoop; m_poCheckpointMgr = (CheckpointMgr *)poCheckpointMgr; m_poSMFac = (SMFac *)poSMFac; m_poCheckpointSender = nullptr; m_llHighestSeenInstanceID = 0; m_iHighestSeenInstanceID_FromNodeID = nullnode; m_bIsIMLearning = false; m_llLastAckInstanceID = 0; }
Proposer :: Proposer( const Config * poConfig, const MsgTransport * poMsgTransport, const Instance * poInstance, const Learner * poLearner, const IOLoop * poIOLoop) : Base(poConfig, poMsgTransport, poInstance), m_oProposerState(poConfig), m_oMsgCounter(poConfig) { m_poLearner = (Learner *)poLearner; m_poIOLoop = (IOLoop *)poIOLoop; m_bIsPreparing = false; m_bIsAccepting = false; m_bCanSkipPrepare = false; InitForNewPaxosInstance(); m_iPrepareTimerID = 0; m_iAcceptTimerID = 0; m_llTimeoutInstanceID = 0; m_iLastPrepareTimeoutMs = m_poConfig->GetPrepareTimeoutMs(); m_iLastAcceptTimeoutMs = m_poConfig->GetAcceptTimeoutMs(); m_bWasRejectBySomeone = false; }
void Base :: NewInstance() { m_llInstanceID++; InitForNewPaxosInstance(); }