MCPcopy Create free account
hub / github.com/Tencent/phxqueue / Rebuild

Method Rebuild

phxqueue/config/lockconfig.cpp:74–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72
73
74comm::RetCode LockConfig::Rebuild() {
75 bool need_check = NeedCheck();
76
77 impl_->lock_id2lock.clear();
78 impl_->addr2lock_id.clear();
79
80 auto &&proto = GetProto();
81
82 for (int i{0}; i < proto.locks_size(); ++i) {
83 const auto &lock(proto.locks(i));
84 if (!lock.lock_id()) continue;
85 if (need_check) PHX_ASSERT(impl_->lock_id2lock.end() == impl_->lock_id2lock.find(lock.lock_id()), ==, true);
86 impl_->lock_id2lock.emplace(lock.lock_id(), make_shared<proto::Lock>(lock));
87
88 for (int j{0}; j < lock.addrs_size(); ++j) {
89 auto &&addr = lock.addrs(j);
90 if (need_check) PHX_ASSERT(impl_->addr2lock_id.end() == impl_->addr2lock_id.find(comm::utils::EncodeAddr(addr)), ==, true);
91 impl_->addr2lock_id.emplace(comm::utils::EncodeAddr(addr), lock.lock_id());
92 }
93 }
94 return comm::RetCode::RET_OK;
95}
96
97
98comm::RetCode LockConfig::GetAllLock(std::vector<shared_ptr<const proto::Lock> > &locks) const {

Callers

nothing calls this directly

Calls 1

EncodeAddrFunction · 0.85

Tested by

no test coverage detected