blob: 2f6ddf5f2dd374badb253c4197fb43eab0a39a65 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include "chatServer.hpp"
#include "server.hpp"
#include "sessionManager.hpp"
#include "chatManager.hpp"
CChatServer::CChatServer() = default;
CChatServer::~CChatServer() {
cleanup();
}
void CChatServer::cleanup() {
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
m_sessionThread = std::jthread(&CSessionManager::enterLoop, g_pSessionManager);
m_sessionThread.detach();
while (true) {
}
}
|