int Learner :: SendLearnValue( const nodeid_t iSendNodeID, const uint64_t llLearnInstanceID, const BallotNumber & oLearnedBallot, const std::string & sLearnedValue, const uint32_t iChecksum, const bool bNeedAck) { BP->GetLearnerBP()->SendLearnValue(); PaxosMsg oPaxosMsg; oPaxosMsg.set_msgtype(MsgType_PaxosLearner_SendLearnValue); oPaxosMsg.set_instanceid(llLearnInstanceID); oPaxosMsg.set_nodeid(m_poConfig->GetMyNodeID()); oPaxosMsg.set_proposalnodeid(oLearnedBallot.m_llNodeID); oPaxosMsg.set_proposalid(oLearnedBallot.m_llProposalID); oPaxosMsg.set_value(sLearnedValue); oPaxosMsg.set_lastchecksum(iChecksum); if (bNeedAck) { oPaxosMsg.set_flag(PaxosMsgFlagType_SendLearnValue_NeedAck); } return SendMessage(iSendNodeID, oPaxosMsg, Message_SendType_TCP); }