diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-11-02 20:45:59 +0000 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-11-02 20:45:59 +0000 |
| commit | aaf9850c8350e3d7d20a91d3fe4e026576a7a032 (patch) | |
| tree | 057886bdd08237a01cf928b5c49e111de6e13128 /signet/Server.cpp | |
| parent | bde34fad26d6510c18b1adb49b992a90879ee4d2 (diff) | |
| download | sigen-aaf9850c8350e3d7d20a91d3fe4e026576a7a032.tar.gz sigen-aaf9850c8350e3d7d20a91d3fe4e026576a7a032.tar.xz sigen-aaf9850c8350e3d7d20a91d3fe4e026576a7a032.zip | |
[FIX] Defined the *_IMPORT defines for libraries
[FIX] Added more packet types
[FIX] Sectioned off packet types
[FIX] ConnectionHandler is now ClientHandler
[ADD] Added a ProgressMeter class for allowing display of progress of packets
git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@296 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'signet/Server.cpp')
| -rw-r--r-- | signet/Server.cpp | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/signet/Server.cpp b/signet/Server.cpp index aceba291..df61f47f 100644 --- a/signet/Server.cpp +++ b/signet/Server.cpp @@ -35,13 +35,27 @@ #include <QtNetwork/QTcpSocket> Signet::Server::Server(QObject* parent) : - ConnectionHandler(parent) + ClientHandler(parent) { loadConfiguration(); if (m_masterInfo.isValid()) connectToMaster(); } +void Signet::Server::packetReceived(QTcpSocket* client, Protocol::Packet* packet) +{ + QString receiver = packet->received(); + if (receiver.isEmpty()) + { + // TODO: Handle the packet + } + else + { + createRoom(receiver); + m_rooms[receiver]->packetReceived(client, packet); + } +} + void Signet::Server::createRoom(const QString& room) { if (m_rooms.contains(room)) @@ -103,29 +117,11 @@ void Signet::Server::masterError() qWarning("Master server socket error: %s", m_master->errorString().toUtf8().constData()); } -void Signet::Server::joinRoom(Client* client, const QString& roomName) -{ - if (!m_rooms.contains(roomName)) - createRoom(roomName); - if (!m_rooms[roomName]->addClient(client)) - { - // TODO: Let the client know about the error. - } -} - void Signet::Server::loadConfiguration() { if (KGlobal::config()->hasGroup("Master Server")) m_masterInfo.load(KGlobal::config()->group("Master Server")); - if (KGlobal::config()->hasGroup("Server Info")) - { - const KConfigGroup& group = KGlobal::config()->group("Server Info"); - m_name = group.readEntry("Name", ""); - if (m_name.isEmpty()) - qFatal("Server name is not set"); - } - else - qFatal("No \"Server Info\" group in configuration"); + m_name = KGlobal::config()->group("Server Info").readEntry("Name", ""); } void Signet::Server::connectToMaster() |
