17 #ifndef CYBER_SERVICE_DISCOVERY_TOPOLOGY_MANAGER_H_ 18 #define CYBER_SERVICE_DISCOVERY_TOPOLOGY_MANAGER_H_ 37 namespace service_discovery {
67 using ChangeFunc = std::function<void(const ChangeMsg&)>;
70 std::map<eprosima::fastrtps::rtps::GUID_t, std::string>;
71 using PartInfo = eprosima::fastrtps::ParticipantDiscoveryInfo;
112 bool InitNodeManager();
113 bool InitChannelManager();
114 bool InitServiceManager();
116 bool CreateParticipant();
117 void OnParticipantChange(
const PartInfo& info);
118 bool Convert(
const PartInfo& info, ChangeMsg* change_msg);
119 bool ParseParticipantName(
const std::string& participant_name,
120 std::string* host_name,
int* process_id);
122 std::atomic<bool> init_;
140 #endif // CYBER_SERVICE_DISCOVERY_TOPOLOGY_MANAGER_H_ void(* func)(void *)
Definition: routine_context.h:41
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
virtual ~TopologyManager()
std::shared_ptr< ChannelManager > ChannelManagerPtr
Definition: topology_manager.h:43
elements in Cyber – Node, Channel, Service, Writer, Reader, Client and Server's relationship is pres...
Definition: topology_manager.h:64
void RemoveChangeListener(const ChangeConnection &conn)
Remove the observe function connect to change_signal_ by conn
ServiceManagerPtr & service_manager()
Get shared_ptr for ServiceManager.
Definition: topology_manager.h:107
void Shutdown()
Shutdown the TopologyManager.
Definition: participant_listener.h:31
std::shared_ptr< ServiceManager > ServiceManagerPtr
Definition: topology_manager.h:46
#define DECLARE_SINGLETON(classname)
Definition: macros.h:52
ChannelManagerPtr & channel_manager()
Get shared_ptr for ChannelManager.
Definition: topology_manager.h:102
std::function< void(const ChangeMsg &)> ChangeFunc
Definition: topology_manager.h:67
ChangeConnection AddChangeListener(const ChangeFunc &func)
To observe the topology change, you can register a ChangeFunc
eprosima::fastrtps::ParticipantDiscoveryInfo PartInfo
Definition: topology_manager.h:71
Topology Manager of Service related.
Definition: service_manager.h:39
std::shared_ptr< Participant > ParticipantPtr
Definition: participant.h:37
NodeManagerPtr & node_manager()
Get shared_ptr for NodeManager.
Definition: topology_manager.h:97
std::map< eprosima::fastrtps::rtps::GUID_t, std::string > PartNameContainer
Definition: topology_manager.h:70
std::shared_ptr< NodeManager > NodeManagerPtr
Definition: topology_manager.h:40
Topology Manager of Service related.
Definition: channel_manager.h:42