| | |
| | | UpdateRegInfo(node); |
| | | nodes_[ssn] = node; |
| | | |
| | | printf("new ssn %ld\n", ssn); |
| | | printf("new node (%s) ssn (%ld)\n", head.proc_id().c_str(), ssn); |
| | | auto old = online_node_addr_map_.find(head.proc_id()); |
| | | if (old != online_node_addr_map_.end()) { // old session |
| | | auto &old_ssn = old->second; |
| | | nodes_[old_ssn]->state_.PutOffline(offline_time_); |
| | | printf("put %s %ld offline\n", nodes_[old_ssn]->proc_.proc_id().c_str(), old->second); |
| | | printf("put node (%s) ssn (%ld) offline\n", nodes_[old_ssn]->proc_.proc_id().c_str(), old->second); |
| | | old_ssn = ssn; |
| | | } else { |
| | | online_node_addr_map_.emplace(head.proc_id(), ssn); |
| | |
| | | for (auto &topic : topics) { |
| | | service_map_[topic].insert(dest); |
| | | } |
| | | printf("node %s ssn %ld serve %d topics:\n", node->proc_.proc_id().c_str(), *node->addrs_.begin(), topics.size()); |
| | | for (auto &topic : topics) { |
| | | printf("\t %s\n", topic.c_str()); |
| | | } |
| | | return MakeReply(eSuccess); |
| | | }); |
| | | } |