diff options
Diffstat (limited to 'src/Common/RequestManager.cpp')
-rw-r--r-- | src/Common/RequestManager.cpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/src/Common/RequestManager.cpp b/src/Common/RequestManager.cpp index f8d5450..e71fd07 100644 --- a/src/Common/RequestManager.cpp +++ b/src/Common/RequestManager.cpp @@ -19,12 +19,19 @@ #include "RequestManager.h" #include "Request/Request.h" +#include "RequestHandler/DisconnectRequestHandler.h" +#include "RequestHandler/IdentifyRequestHandler.h" #include <iostream> namespace Mad { namespace Common { +RequestManager::RequestManager(bool core) : requestId(core ? -2 : -1) { + registerPacketType<RequestHandler::DisconnectRequestHandler>(Net::Packet::DISCONNECT); + registerPacketType<RequestHandler::IdentifyRequestHandler>(Net::Packet::IDENTIFY); +} + void RequestManager::receiveHandler(Net::Connection *connection, const Net::Packet &packet) { std::map<Net::Connection*,RequestMap*>::iterator it = requestMaps.find(connection); @@ -36,7 +43,7 @@ void RequestManager::receiveHandler(Net::Connection *connection, const Net::Pack } RequestMap *requestMap = it->second; - RequestHandler *request = requestMap->findRequest(packet.getRequestId()); + RequestHandler::RequestHandler *request = requestMap->findRequest(packet.getRequestId()); if(request) { request->handlePacket(connection, packet); @@ -61,19 +68,7 @@ void RequestManager::receiveHandler(Net::Connection *connection, const Net::Pack } - switch(packet.getType()) { - case Net::Packet::DISCONNECT: - connection->send(Net::Packet(Net::Packet::OK, packet.getRequestId())); - connection->disconnect(); - break; - case Net::Packet::IDENTIFY: - std::cout << "Received identify request from '" << std::string((char*)packet.getData(), packet.getLength()) << "'." << std::endl; - - connection->send(Net::Packet(Net::Packet::IDENTIFY, packet.getRequestId(), packet.getData(), packet.getLength())); - break; - default: - std::cerr << "Received an unexpected packet." << std::endl; - } + std::cerr << "Received an unexpected packet." << std::endl; } bool RequestManager::sendRequest(Net::Connection *connection, Request::Request *request) { |