9 #ifndef RAD_MSG_HANDLER_HPP
10 #define RAD_MSG_HANDLER_HPP
12 #include <rad/Logger.hpp>
13 #include <rad/Exceptions.hpp>
17 #include <unordered_map>
37 virtual void handle(
const std::string& identity,
38 const std::string& msgTypeId,
51 template<
typename EventType>
59 std::string errMsg(
"Error requestName <" + requestName +
60 "> payload type, does not match eventId <" +
EventType::id +
">.");
68 using msg_payload_t =
typename EventType::payload_t::payload_t;
69 msg_payload_t reqPayload;
71 if (reqPayload.ParseFromArray(pMsg, msgSize) ==
false) {
72 std::string errMsg(
"Error parsing <" + requestName +
"> payload.");
77 return EventType(identity.c_str(), reqPayload);
#define RAD_LOG_ERROR()
Definition: Logger.hpp:266
Definition: MsgHandler.hpp:24
EventType ParseRequestAndCreateEvent(const std::string &identity, const std::string &requestName, const void *pMsg, size_t msgSize)
Definition: MsgHandler.hpp:52
string id
Definition: requests.proto:15
Definition: Exceptions.hpp:44
virtual ~MsgHandler()
Definition: MsgHandler.hpp:26
#define RAD_LOG_TRACE()
Definition: Logger.hpp:319
virtual void handle(const std::string &identity, const std::string &msgTypeId, const void *pData, size_t dataSize)=0