summaryrefslogtreecommitdiffstats
path: root/signet/Client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'signet/Client.cpp')
-rw-r--r--signet/Client.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/signet/Client.cpp b/signet/Client.cpp
index 9a032407..a6d39011 100644
--- a/signet/Client.cpp
+++ b/signet/Client.cpp
@@ -21,6 +21,7 @@
// Signet includes
#include "Room.h"
#include "Server.h"
+#include "Table.h"
// Qt includes
#include <QtNetwork/QHostAddress>
@@ -42,17 +43,25 @@ void Signet::Client::setServer(Server* server)
void Signet::Client::joinRoom(Room* room)
{
+ if (!m_rooms.contains(room))
+ {
+ room->addClient(this);
+ m_rooms[room];
+ }
}
void Signet::Client::leaveRoom(Room* room)
{
+ QList<Table*> tables = QList<Table*>::fromSet(m_rooms[room]);
+ foreach (Table* table, tables)
+ table->removeClient(this);
+ room->removeClient(this);
}
void Signet::Client::joinTable(Room* room, Table* table)
{
if (!m_rooms.contains(room))
joinRoom(room);
-// table->
}
void Signet::Client::leaveTable(Room* room, Table* table)
@@ -66,6 +75,8 @@ void Signet::Client::leaveTable(Room* room, Table* table)
void Signet::Client::sendData(const QByteArray& data)
{
+ m_socket->write(data);
+// m_socket->waitForBytesWritten();
}
void Signet::Client::disconnectFromServer()
@@ -78,10 +89,5 @@ void Signet::Client::disconnectFromAllRooms()
{
QList<Room*> rooms = m_rooms.keys();
foreach (Room* room, rooms)
- {
- QList<Table*> tables = QList::fromSet(m_rooms[room]);
- foreach (Table* table, tables)
- table->removeClient(this);
- room->removeClient(this);
- }
+ leaveRoom(room);
}