5#include "msgpack/v3/object_fwd_decl.hpp"
16 std::unordered_map<uint32_t, std::function<bool(msgpack::object&)>>
messageHandlers;
25 void registerTarget(uint32_t msgType, std::function<
bool(msgpack::object&)>& handler);
34 return handleSystemMessage(obj);
36 auto iter = messageHandlers.find(header.
msgType);
37 if (iter == messageHandlers.end()) {
41 return (iter->second)(obj);
44template <
typename OutputStream>
47 messageHandlers.insert({ msgType, handler });
67 outputStream.send(packedHeader);
void registerTarget(uint32_t msgType, std::function< bool(msgpack::object &)> &handler)
StreamDispatcher(OutputStream &out)
void sendPong(uint32_t pingId)
std::unordered_map< uint32_t, std::function< bool(msgpack::object &)> > messageHandlers
bool onNewData(msgpack::object &obj)
OutputStream & outputStream
bool handleSystemMessage(msgpack::object &obj)
const uint32_t FIRST_APP_MSG_TYPE
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept