| 305 | } |
| 306 | |
| 307 | static size_t CalHash(const vector<comm::proto::AddrScale> &addr_scales) { |
| 308 | size_t h = crc32(0, Z_NULL, 0); |
| 309 | for (auto &&addr_scale : addr_scales) { |
| 310 | int port = addr_scale.addr().port(); |
| 311 | int paxos_port = addr_scale.addr().paxos_port(); |
| 312 | int scale = addr_scale.scale(); |
| 313 | h = crc32(h, (const unsigned char *)addr_scale.addr().ip().c_str(), addr_scale.addr().ip().length()); |
| 314 | h = crc32(h, (const unsigned char *)&port, sizeof(int)); |
| 315 | h = crc32(h, (const unsigned char *)&paxos_port, sizeof(int)); |
| 316 | h = crc32(h, (const unsigned char *)&scale, sizeof(int)); |
| 317 | } |
| 318 | return h; |
| 319 | } |
| 320 | |
| 321 | comm::RetCode HeartBeatLock::GetAddrScale(SubID2AddrScales &sub_id2addr_scales) { |
| 322 | QLVerb("start"); |