summaryrefslogtreecommitdiffstats
path: root/src/Common/RequestManager.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-09-13 02:23:04 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-09-13 02:23:04 +0200
commit920c506d477bd7f357e05590e8cdedf8e5e8a1b8 (patch)
treeae160560e38c6757ca3e37911c4d1196b163da9b /src/Common/RequestManager.cpp
parent47d7a53099be598c26be4de63e9d8fe52c2e0e66 (diff)
downloadmad-920c506d477bd7f357e05590e8cdedf8e5e8a1b8.tar
mad-920c506d477bd7f357e05590e8cdedf8e5e8a1b8.zip
Einige Umstrukturierungen an den RequestHandler-Klassen
Diffstat (limited to 'src/Common/RequestManager.cpp')
-rw-r--r--src/Common/RequestManager.cpp23
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) {