From 5cbaa841d0bf07f75614205059324e5d2adbc5dd Mon Sep 17 00:00:00 2001 From: Joursoir Date: Fri, 27 Nov 2020 01:41:09 +0300 Subject: server: add different messages, support commands('/') and spec-messages --- src/server/chat.hpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/server/chat.hpp') 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: -- cgit v1.2.3-18-g5258