4 #include <unordered_map>
11 using std::unordered_map;
24 template <
class CLIENT,
class REQUEST>
77 void handleRequest(CLIENT* client,
const string& command, REQUEST& request,
const uint32_t messageId,
const uint8_t retries) {
83 defaultHandler->handleRequest(client, request, messageId, retries);
90 auto handler = it->second;
91 handler->handleRequest(client, request, messageId, retries);
95 typedef unordered_map<string, ServerClientRequestHandler<CLIENT,REQUEST>*>
RequestHandlerMap;
Network server client request handler hub exception.
Network server client request handler hub.
unordered_map< string, ServerClientRequestHandler< CLIENT, REQUEST > * > RequestHandlerMap
ServerClientRequestHandler< CLIENT, REQUEST > * defaultHandler
void addHandler(ServerClientRequestHandler< CLIENT, REQUEST > *handler)
Adds a client request handler.
virtual ~ServerClientRequestHandlerHub()
Public destructor.
void handleRequest(CLIENT *client, const string &command, REQUEST &request, const uint32_t messageId, const uint8_t retries)
Handles a client request.
void setDefaultHandler(ServerClientRequestHandler< CLIENT, REQUEST > *handler)
Sets the client request default handler, will be used if command not found in request handler map.
RequestHandlerMap requestHandlerMap
Network client request handler base class.
const string & getCommand()
Returns this requests handler command name.
#define FORBID_CLASS_COPY(CLASS)