7 #include <unordered_map> 8 #include <unordered_set> 18 using MapOfSets = std::unordered_map<std::string, std::unordered_set<std::string>>;
20 template <
typename IdType>
24 :
std::runtime_error(what_arg)
48 std::unordered_map<std::string, std::string>
metadata;
51 std::string certfile =
"";
52 std::string keyfile =
"";
54 bool useCompression =
false;
58 template <
typename ConnectionHandle>
65 std::function<void(const std::vector<std::string>&,
const std::optional<std::string>&,
67 parameterRequestHandler;
68 std::function<void(const std::vector<Parameter>&,
const std::optional<std::string>&,
70 parameterChangeHandler;
73 parameterSubscriptionHandler;
78 template <
typename ConnectionHandle>
82 virtual void start(
const std::string& host, uint16_t port) = 0;
83 virtual void stop() = 0;
85 virtual std::vector<ChannelId> addChannels(
const std::vector<ChannelWithoutId>& channels) = 0;
86 virtual void removeChannels(
const std::vector<ChannelId>& channelIds) = 0;
88 const std::vector<Parameter>& parameters,
89 const std::optional<std::string>& requestId) = 0;
90 virtual void updateParameterValues(
const std::vector<Parameter>& parameters) = 0;
91 virtual std::vector<ServiceId> addServices(
const std::vector<ServiceWithoutId>& services) = 0;
92 virtual void removeServices(
const std::vector<ServiceId>& serviceIds) = 0;
97 const uint8_t* payload,
size_t payloadSize) = 0;
98 virtual void broadcastTime(uint64_t timestamp) = 0;
101 virtual void updateConnectionGraph(
const MapOfSets& publishedTopics,
103 const MapOfSets& advertisedServices) = 0;
105 virtual uint16_t
getPort() = 0;
106 virtual std::string remoteEndpointString(
ConnectionHandle clientHandle) = 0;
ROSCPP_DECL uint32_t getPort()
constexpr size_t DEFAULT_SEND_BUFFER_LIMIT_BYTES
std::function< void(ChannelId, ConnectionHandle)> unsubscribeHandler
std::vector< std::regex > clientTopicWhitelistPatterns
std::unordered_map< std::string, std::string > metadata
std::function< void(const ServiceRequest &, ConnectionHandle)> serviceRequestHandler
std::function< void(const ClientAdvertisement &, ConnectionHandle)> clientAdvertiseHandler
std::function< void(ChannelId, ConnectionHandle)> subscribeHandler
std::unordered_map< std::string, std::unordered_set< std::string > > MapOfSets
std::function< void(ClientChannelId, ConnectionHandle)> clientUnadvertiseHandler
std::function< void(bool)> subscribeConnectionGraphHandler
ExeptionWithId(IdType id, const std::string &what_arg)
std::vector< std::string > capabilities
ParameterSubscriptionOperation
websocketpp::connection_hdl ConnectionHandle
virtual ~ServerInterface()
std::function< void(const ClientMessage &, ConnectionHandle)> clientMessageHandler
const std::string response
std::vector< std::string > supportedEncodings