summaryrefslogtreecommitdiff
path: root/src/chatServer.cpp
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-03-09 14:16:46 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-03-20 23:44:57 +0800
commit8ab26f85e474dcdbbb2c2fb94b6a087f71952bf8 (patch)
tree752c1129db2d363dfd96dd15d27c34f2e126a4e3 /src/chatServer.cpp
parent938ca89e48c2a01d6aa072f01545fa2da585486c (diff)
feat: broadcast message from one client to the rest, making chat actually possible
fix(chatServer, CSessionManager): .join sessionThread properly cleanup(server): unused header
Diffstat (limited to 'src/chatServer.cpp')
-rw-r--r--src/chatServer.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/chatServer.cpp b/src/chatServer.cpp
index 06f2021..2f6ddf5 100644
--- a/src/chatServer.cpp
+++ b/src/chatServer.cpp
@@ -1,6 +1,7 @@
#include "chatServer.hpp"
#include "server.hpp"
#include "sessionManager.hpp"
+#include "chatManager.hpp"
CChatServer::CChatServer() = default;
@@ -9,22 +10,26 @@ CChatServer::~CChatServer() {
}
void CChatServer::cleanup() {
- g_pServer.reset();
+ g_pChatManager.reset();
g_pSessionManager.reset();
+ g_pServer.reset();
+
+ if (m_sessionThread.joinable())
+ m_sessionThread.join();
}
void CChatServer::initManagers() {
g_pServer = std::make_unique<CServer>(8080);
g_pSessionManager = std::make_shared<CSessionManager>();
+ g_pChatManager = std::make_unique<CChatManager>();
}
-
void CChatServer::start() {
initManagers();
// will await while waiting for accept() to return a new client
- std::jthread sessionThread = std::jthread(&CSessionManager::enterLoop, g_pSessionManager);
- sessionThread.detach();
+ m_sessionThread = std::jthread(&CSessionManager::enterLoop, g_pSessionManager);
+ m_sessionThread.detach();
while (true) {
}