9 #ifndef RAD_TOPIC_HANDLER_HPP
10 #define RAD_TOPIC_HANDLER_HPP
12 #include <rad/exceptions.hpp>
16 #include <unordered_map>
33 virtual void Handle(
const std::string& topic_type_id,
const void* data,
size_t data_size) = 0;
43 template <
typename EventType>
46 typename EventType::payload_t topic_payload;
47 if (topic_payload.ParseFromArray(msg, msg_size) ==
false) {
48 throw rad::Exception(
"Error parsing <" + topic_name +
"> payload.");
50 return EventType(topic_payload);
virtual void Handle(const std::string &topic_type_id, const void *data, size_t data_size)=0
Definition: exceptions.hpp:45
virtual ~TopicHandler()
Definition: topicHandler.hpp:25
EventType ParseTopicAndCreateEvent(const std::string &topic_name, const void *msg, size_t msg_size)
Definition: topicHandler.hpp:44
Definition: topicHandler.hpp:23