diff options
author | Joursoir <chat@joursoir.net> | 2020-11-25 19:04:49 +0300 |
---|---|---|
committer | Joursoir <chat@joursoir.net> | 2020-11-25 19:04:49 +0300 |
commit | 6139b74876a5c8417d75c2759ce0baec4ae0e171 (patch) | |
tree | 9924c31f8136c3834fd452e3846a35bcac6602d7 /src/server/rooms.hpp | |
parent | 8dfca4755430209504dac5ed2e03a482342265b3 (diff) | |
download | want-chat-6139b74876a5c8417d75c2759ce0baec4ae0e171.tar.gz want-chat-6139b74876a5c8417d75c2759ce0baec4ae0e171.tar.bz2 want-chat-6139b74876a5c8417d75c2759ce0baec4ae0e171.zip |
add second (work with chat) level of abstraction
Diffstat (limited to 'src/server/rooms.hpp')
-rw-r--r-- | src/server/rooms.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/server/rooms.hpp b/src/server/rooms.hpp new file mode 100644 index 0000000..08fffff --- /dev/null +++ b/src/server/rooms.hpp @@ -0,0 +1,33 @@ +#ifndef ROOMREALIZATION_H +#define ROOMREALIZATION_H + +class Server; +class ChatSession; + +class ChatRoom { + Server *the_server; + const bool it_lobby; + + struct item { + ChatSession *s; + item *next; + }; + item *first; +public: + ChatRoom(Server *i_server, bool i_lobby) + : the_server(i_server), it_lobby(i_lobby), first(0) {} + ~ChatRoom(); + + void SendAll(const char *msg, ChatSession *except = 0); + void LeaveMessage(ChatSession *except); + + void HandleMessage(ChatSession *ses, const char *str); + void HandleCommand(ChatSession *s, int cmd_counter, + char **commands); + + void AddSession(ChatSession *ses); + void RemoveSession(ChatSession *ses); + void CloseSession(ChatSession *ses); +}; + +#endif
\ No newline at end of file |