18#ifndef TRINITYCORE_BNET_SERVICE_DISPATCHER_H
19#define TRINITYCORE_BNET_SERVICE_DISPATCHER_H
22#include <unordered_map>
38 template<
class Service>
41 _dispatchers[Service::OriginalHash::value] = &ServiceDispatcher::Dispatch<Service>;
44 template<
class Service>
47 Service(session).CallServerMethod(token, methodId, std::move(buffer));
55#define sServiceDispatcher ServiceDispatcher::Instance()
static void Dispatch(Session *session, uint32 token, uint32 methodId, MessageBuffer buffer)
std::unordered_map< uint32, ServiceMethod > _dispatchers
void(* ServiceMethod)(Session *, uint32, uint32, MessageBuffer)
void Dispatch(Session *session, uint32 serviceHash, uint32 token, uint32 methodId, MessageBuffer buffer)
static ServiceDispatcher & Instance()