diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-09-13 02:23:04 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-09-13 02:23:04 +0200 |
commit | 920c506d477bd7f357e05590e8cdedf8e5e8a1b8 (patch) | |
tree | ae160560e38c6757ca3e37911c4d1196b163da9b /src/Common/RequestManager.cpp | |
parent | 47d7a53099be598c26be4de63e9d8fe52c2e0e66 (diff) | |
download | mad-920c506d477bd7f357e05590e8cdedf8e5e8a1b8.tar mad-920c506d477bd7f357e05590e8cdedf8e5e8a1b8.zip |
Einige Umstrukturierungen an den RequestHandler-Klassen
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) { |