本文整理汇总了C++中LastVote::setCandidateId方法的典型用法代码示例。如果您正苦于以下问题:C++ LastVote::setCandidateId方法的具体用法?C++ LastVote::setCandidateId怎么用?C++ LastVote::setCandidateId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LastVote
的用法示例。
在下文中一共展示了LastVote::setCandidateId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _onDryRunComplete
void ReplicationCoordinatorImpl::_onDryRunComplete(long long originalTerm) {
invariant(_voteRequester);
invariant(!_electionWinnerDeclarer);
LoseElectionDryRunGuardV1 lossGuard(this);
if (_topCoord->getTerm() != originalTerm) {
log() << "not running for primary, we have been superceded already";
return;
}
const VoteRequester::VoteRequestResult endResult = _voteRequester->getResult();
if (endResult == VoteRequester::InsufficientVotes) {
log() << "not running for primary, we received insufficient votes";
return;
} else if (endResult == VoteRequester::StaleTerm) {
log() << "not running for primary, we have been superceded already";
return;
} else if (endResult != VoteRequester::SuccessfullyElected) {
log() << "not running for primary, we received an unexpected problem";
return;
}
log() << "dry election run succeeded, running for election";
_updateTerm_incallback(originalTerm + 1);
// Secure our vote for ourself first
_topCoord->voteForMyselfV1();
// Store the vote in persistent storage.
LastVote lastVote;
lastVote.setTerm(originalTerm + 1);
lastVote.setCandidateId(getMyId());
auto cbStatus = _replExecutor.scheduleDBWork(
[this, lastVote](const ReplicationExecutor::CallbackArgs& cbData) {
_writeLastVoteForMyElection(lastVote, cbData);
});
if (cbStatus.getStatus() == ErrorCodes::ShutdownInProgress) {
return;
}
fassert(28769, cbStatus.getStatus());
lossGuard.dismiss();
}