MCPcopy Create free account
hub / github.com/Tencent/phxpaxos / RemoveMember

Method RemoveMember

src/node/pnode.cpp:529–567  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

527}
528
529int PNode :: RemoveMember(const int iGroupIdx, const NodeInfo & oNode)
530{
531 if (!CheckGroupID(iGroupIdx))
532 {
533 return Paxos_GroupIdxWrong;
534 }
535
536 SystemVSM * poSystemVSM = m_vecGroupList[iGroupIdx]->GetConfig()->GetSystemVSM();
537
538 if (poSystemVSM->GetGid() == 0)
539 {
540 return Paxos_MembershipOp_NoGid;
541 }
542
543 uint64_t llVersion = 0;
544 NodeInfoList vecNodeInfoList;
545 poSystemVSM->GetMembership(vecNodeInfoList, llVersion);
546
547 bool bNodeExist = false;
548 NodeInfoList vecAfterNodeInfoList;
549 for (auto & oNodeInfo : vecNodeInfoList)
550 {
551 if (oNodeInfo.GetNodeID() == oNode.GetNodeID())
552 {
553 bNodeExist = true;
554 }
555 else
556 {
557 vecAfterNodeInfoList.push_back(oNodeInfo);
558 }
559 }
560
561 if (!bNodeExist)
562 {
563 return Paxos_MembershipOp_Remove_NodeNotExist;
564 }
565
566 return ProposalMembership(poSystemVSM, iGroupIdx, vecAfterNodeInfoList, llVersion);
567}
568
569int PNode :: ChangeMember(const int iGroupIdx, const NodeInfo & oFromNode, const NodeInfo & oToNode)
570{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected