397 {
398 auto topology = service_discovery::TopologyManager::Instance();
399 sleep(sleep_s);
400 std::vector<proto::RoleAttributes> tmpVec;
401 topology->channel_manager()->GetWriters(&tmpVec);
402 std::unordered_map<std::string, std::vector<std::string>> roles_info;
403
404 for (auto& attr : tmpVec) {
405 std::string channel_name = attr.channel_name();
406 std::string msgdata;
407 attr.SerializeToString(&msgdata);
408 roles_info[channel_name].emplace_back(msgdata);
409 }
410
411 tmpVec.clear();
412 topology->channel_manager()->GetReaders(&tmpVec);
413 for (auto& attr : tmpVec) {
414 std::string channel_name = attr.channel_name();
415 std::string msgdata;
416 attr.SerializeToString(&msgdata);
417 roles_info[channel_name].emplace_back(msgdata);
418 }
419 return roles_info;
420 }