diff options
author | Joursoir <chat@joursoir.net> | 2020-12-02 17:59:46 +0000 |
---|---|---|
committer | Joursoir <chat@joursoir.net> | 2020-12-02 17:59:46 +0000 |
commit | f5a7c51c89567abc9b9c6b974a65e24ea616e1f4 (patch) | |
tree | 07d4aeacdeb80447c85a29f168fb1ddb48fea41c /src/server/ChatServer.hpp | |
parent | ad0a2dc909fbb772d42ab6faf13bba74fbc2483d (diff) | |
download | want-chat-f5a7c51c89567abc9b9c6b974a65e24ea616e1f4.tar.gz want-chat-f5a7c51c89567abc9b9c6b974a65e24ea616e1f4.tar.bz2 want-chat-f5a7c51c89567abc9b9c6b974a65e24ea616e1f4.zip |
refactor code; add class storing users
Diffstat (limited to 'src/server/ChatServer.hpp')
-rw-r--r-- | src/server/ChatServer.hpp | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/src/server/ChatServer.hpp b/src/server/ChatServer.hpp index e2ef154..4fa90e5 100644 --- a/src/server/ChatServer.hpp +++ b/src/server/ChatServer.hpp @@ -17,6 +17,28 @@ enum handle_room_enter { class ChatRoom; class UserInfo; +class StorageOfUsers { + int online; + struct item { + UserInfo *u; + item *next; + }; + item *first; +public: + StorageOfUsers() : online(0), first(0) {} + ~StorageOfUsers(); + + void SendAllUsers(const char *msg, UserInfo *except = 0, + const int spec_msg = system_msg); + + void AddUser(UserInfo *u); + void RemoveUser(UserInfo *u); + // func for fast clear storage: + UserInfo *Disconnect(); + + int GetOnline() const { return online; } +}; + class ChatServer : public FdHandler { EventSelector *the_selector; DatabaseManager *dbase; @@ -25,6 +47,8 @@ class ChatServer : public FdHandler { int room_len; ChatRoom *lobby; + StorageOfUsers *talkers; + ChatServer(EventSelector *sel, DatabaseManager *db, int fd); public: ~ChatServer(); @@ -49,15 +73,4 @@ private: virtual void Handle(bool r, bool w); }; -/*class StorageOfUsers { - struct item { - ChatSession *s; - item *next; - } - item *first; -public: - AddSession(ChatSession *s); - RemoveSession(ChatSession *s); -};*/ - #endif
\ No newline at end of file |