summaryrefslogtreecommitdiffstats
path: root/src/server/chat.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/chat.hpp')
-rw-r--r--src/server/chat.hpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/server/chat.hpp b/src/server/chat.hpp
index ca22519..6abfc48 100644
--- a/src/server/chat.hpp
+++ b/src/server/chat.hpp
@@ -27,29 +27,35 @@ class ChatSession : FdHandler {
void ReadAndIgnore();
void ReadAndCheck();
void CheckLines();
+
+ void SetRoom(ChatRoom *new_master);
public:
- const char *GetName() const { return name; }
+ const char *GetName();
- void ChangeName(const char *n_name);
+ void SetName(const char *n_name);
void Send(const char *msg);
};
class Server : public FdHandler {
EventSelector *the_selector;
ChatRoom **room;
- ChatRoom *lobby;
-
int room_len;
+ ChatRoom *lobby;
+
Server(EventSelector *sel, int fd);
public:
~Server();
static Server *Start(EventSelector *sel, int port);
+ bool RoomExist(int id) const;
+
int AddRoom();
- // RemoveRoom();
- // void AddSessionToRoom(ChatSession *s, int id);
+ bool DeleteRoom(int id); // call only if room is empty
+
+ void GotoLobby(ChatRoom *cur_room, ChatSession *s);
+ bool ChangeSessionRoom(ChatRoom *cur_room, ChatSession *s, int id);
void CloseConnection(ChatSession *s)
{ the_selector->Remove(s); delete s; }
private: