12 #include <mrpt/core/Clock.h>
13 #include <mrpt/system/COutputLogger.h>
19 #include <shared_mutex>
22 #if defined(MVSIM_HAS_ZMQ) && defined(MVSIM_HAS_PROTOBUF)
24 #include <mvsim/mvsim-msgs/AdvertiseServiceRequest.pb.h>
25 #include <mvsim/mvsim-msgs/AdvertiseTopicRequest.pb.h>
26 #include <mvsim/mvsim-msgs/GetServiceInfoRequest.pb.h>
27 #include <mvsim/mvsim-msgs/ListNodesRequest.pb.h>
28 #include <mvsim/mvsim-msgs/ListTopicsRequest.pb.h>
29 #include <mvsim/mvsim-msgs/RegisterNodeRequest.pb.h>
30 #include <mvsim/mvsim-msgs/SubscribeRequest.pb.h>
31 #include <mvsim/mvsim-msgs/UnregisterNodeRequest.pb.h>
60 class Server :
public mrpt::system::COutputLogger
87 #if defined(MVSIM_HAS_ZMQ) && defined(MVSIM_HAS_PROTOBUF)
88 void handle(
const mvsim_msgs::RegisterNodeRequest& m, zmq::socket_t& s);
89 void handle(
const mvsim_msgs::UnregisterNodeRequest& m, zmq::socket_t& s);
90 void handle(
const mvsim_msgs::SubscribeRequest& m, zmq::socket_t& s);
91 void handle(
const mvsim_msgs::ListTopicsRequest& m, zmq::socket_t& s);
92 void handle(
const mvsim_msgs::ListNodesRequest& m, zmq::socket_t& s);
93 void handle(
const mvsim_msgs::AdvertiseTopicRequest& m, zmq::socket_t& s);
94 void handle(
const mvsim_msgs::AdvertiseServiceRequest& m, zmq::socket_t& s);
95 void handle(
const mvsim_msgs::GetServiceInfoRequest& m, zmq::socket_t& s);
113 const std::string& topicName,
const std::string& topicTypeName,
114 const std::string& publisherEndpoint,
const std::string& nodeName);
118 const std::string& serviceName,
const std::string& inputTypeName,
119 const std::string& outputTypeName,
const std::string& publisherEndpoint,
120 const std::string& nodeName);
124 const std::string& serviceName, std::string& publisherEndpoint,
125 std::string& nodeName)
const;
132 const std::string& topicName,
133 const std::optional<std::string>& updatesEndPoint = std::nullopt);
155 const std::string& topic_name,
const std::string& publisher_node_name,
156 const std::string& publisher_endpoint)
180 InfoPerTopic(
const std::string& name,
const std::string& topic_type_name)
196 const std::string& name,
const std::string& in_type_name,
197 const std::string& out_type_name,
const std::string& end_point,
198 const std::string& node_name)