summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-03-11 13:37:25 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-03-20 23:44:58 +0800
commit4764b5f494fd5c0fe41dbc01779738c450198933 (patch)
treea7880b2e6beb97152414cea6f451204c41ddf110 /src
parent513623fc0e5182d37aaf91c6dc42670bca3aa888 (diff)
clang-format
Diffstat (limited to 'src')
-rw-r--r--src/chatManager.cpp16
-rw-r--r--src/chatManager.hpp25
-rw-r--r--src/chatServer.cpp45
-rw-r--r--src/chatServer.hpp20
-rw-r--r--src/format.hpp2
-rw-r--r--src/main.cpp44
-rw-r--r--src/server.cpp6
-rw-r--r--src/session.cpp36
-rw-r--r--src/session.hpp2
-rw-r--r--src/sessionManager.cpp33
-rw-r--r--src/sessionManager.hpp20
11 files changed, 124 insertions, 125 deletions
diff --git a/src/chatManager.cpp b/src/chatManager.cpp
index 0ed3b60..9e244f6 100644
--- a/src/chatManager.cpp
+++ b/src/chatManager.cpp
@@ -1,22 +1,22 @@
#include "chatManager.hpp"
-#include "sessionManager.hpp"
#include "log.hpp"
+#include "sessionManager.hpp"
CChatManager::CChatManager() {
- log(LOG, "ChatManager: initialized");
+ log(LOG, "ChatManager: initialized");
}
CChatManager::~CChatManager() {
- m_vMessages.clear();
- log(SYS, "ChatManager: bye");
+ m_vMessages.clear();
+ log(SYS, "ChatManager: bye");
}
void CChatManager::newMessage(const SMessage &msg) {
- log(LOG, "New message from {}: {}", msg.username, msg.msg);
- broadcastMessage(msg);
- m_vMessages.push_back(msg);
+ log(LOG, "New message from {}: {}", msg.username, msg.msg);
+ broadcastMessage(msg);
+ m_vMessages.push_back(msg);
}
void CChatManager::broadcastMessage(const SMessage &msg) {
- g_pSessionManager->broadcastChat(NFormatter::fmt(eFormatType::NONE, "{}: {}", msg.username, msg.msg), msg.username);
+ g_pSessionManager->broadcastChat(NFormatter::fmt(eFormatType::NONE, "{}: {}", msg.username, msg.msg), msg.username);
}
diff --git a/src/chatManager.hpp b/src/chatManager.hpp
index 253ab6a..702ef37 100644
--- a/src/chatManager.hpp
+++ b/src/chatManager.hpp
@@ -3,17 +3,18 @@
#include <vector>
class CChatManager {
-public:
- CChatManager();
- ~CChatManager();
- struct SMessage {
- std::string msg;
- std::string username;
- };
- void newMessage(const SMessage &msg);
- void broadcastMessage(const SMessage &msg);
-private:
- void broadcastMessage(const std::string &msg, const std::string &username);
- std::vector<SMessage> m_vMessages;
+ public:
+ CChatManager();
+ ~CChatManager();
+ struct SMessage {
+ std::string msg;
+ std::string username;
+ };
+ void newMessage(const SMessage &msg);
+ void broadcastMessage(const SMessage &msg);
+
+ private:
+ void broadcastMessage(const std::string &msg, const std::string &username);
+ std::vector<SMessage> m_vMessages;
};
inline std::unique_ptr<CChatManager> g_pChatManager;
diff --git a/src/chatServer.cpp b/src/chatServer.cpp
index 70504f9..e6213b8 100644
--- a/src/chatServer.cpp
+++ b/src/chatServer.cpp
@@ -1,44 +1,43 @@
#include "chatServer.hpp"
-#include "server.hpp"
-#include "sessionManager.hpp"
#include "chatManager.hpp"
#include "log.hpp"
+#include "server.hpp"
+#include "sessionManager.hpp"
CChatServer::CChatServer() {
- log(LOG, "ChatServer: initialized");
+ log(LOG, "ChatServer: initialized");
};
CChatServer::~CChatServer() {
- cleanup();
- log(SYS, "ChatServer: bye");
+ cleanup();
+ log(SYS, "ChatServer: bye");
}
void CChatServer::cleanup() {
- g_pChatManager.reset();
- // if (m_sessionThread.joinable())
- // m_sessionThread.join();
- g_pSessionManager.reset();
- g_pServer.reset();
+ g_pChatManager.reset();
+ // if (m_sessionThread.joinable())
+ // m_sessionThread.join();
+ g_pSessionManager.reset();
+ g_pServer.reset();
}
void CChatServer::initManagers() {
- log(LOG, "ChatServer: initializing managers");
- log(LOG, "Creating Server");
- g_pServer = std::make_unique<CServer>(8080);
- log(LOG, "Creating SessionManager");
+ log(LOG, "ChatServer: initializing managers");
+ log(LOG, "Creating Server");
+ g_pServer = std::make_unique<CServer>(8080);
+ log(LOG, "Creating SessionManager");
g_pSessionManager = std::make_shared<CSessionManager>();
- log(LOG, "Creating ChatManager");
- g_pChatManager = std::make_unique<CChatManager>();
+ log(LOG, "Creating ChatManager");
+ g_pChatManager = std::make_unique<CChatManager>();
}
void CChatServer::start() {
- initManagers();
+ initManagers();
- // will await while waiting for accept() to return a new client
- m_sessionThread = std::jthread(&CSessionManager::run, g_pSessionManager.get());
- m_sessionThread.detach();
+ // will await while waiting for accept() to return a new client
+ m_sessionThread = std::jthread(&CSessionManager::run, g_pSessionManager.get());
+ m_sessionThread.detach();
- while (true) {
- }
+ while (true) {
+ }
}
-
diff --git a/src/chatServer.hpp b/src/chatServer.hpp
index e205eb1..6094d92 100644
--- a/src/chatServer.hpp
+++ b/src/chatServer.hpp
@@ -2,16 +2,16 @@
#include <thread>
class CChatServer {
-public:
- CChatServer();
- ~CChatServer();
- void start();
- void cleanup();
-private:
- void initManagers();
- void initServer();
- std::jthread m_sessionThread;
+ public:
+ CChatServer();
+ ~CChatServer();
+ void start();
+ void cleanup();
+
+ private:
+ void initManagers();
+ void initServer();
+ std::jthread m_sessionThread;
};
inline std::unique_ptr<CChatServer> g_pChatServer;
-
diff --git a/src/format.hpp b/src/format.hpp
index 6e41e04..f079535 100644
--- a/src/format.hpp
+++ b/src/format.hpp
@@ -4,7 +4,7 @@
enum eFormatType : int8_t {
NONE,
- TRACE,
+ TRACE,
LOG,
WARN,
ERR,
diff --git a/src/main.cpp b/src/main.cpp
index 3288b5c..115ad53 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,42 +1,42 @@
#include "chatServer.hpp"
-#include <csignal>
#include "log.hpp"
+#include <csignal>
#include <unistd.h>
static void handleSignal(int sig) {
- signal(sig, SIG_DFL);
+ signal(sig, SIG_DFL);
- log(SYS, "Caught signal: {}", sig);
+ log(SYS, "Caught signal: {}", sig);
- switch (sig) {
- default:
- // quick_exit(less cleanup) if the cleanup took too long
- signal(SIGALRM, [](int) { std::quick_exit(1); });
- alarm(5);
+ switch (sig) {
+ default:
+ // quick_exit(less cleanup) if the cleanup took too long
+ signal(SIGALRM, [](int) { std::quick_exit(1); });
+ alarm(5);
- std::exit(0);
- break;
- }
+ std::exit(0);
+ break;
+ }
}
static void registerSignals() {
- signal(SIGINT, handleSignal);
- signal(SIGTERM, handleSignal);
+ signal(SIGINT, handleSignal);
+ signal(SIGTERM, handleSignal);
- // client may not finish reading hence the server will receive SIGPIPE, we don't want that to just crash the server
- signal(SIGPIPE, SIG_IGN);
+ // client may not finish reading hence the server will receive SIGPIPE, we don't want that to just crash the server
+ signal(SIGPIPE, SIG_IGN);
}
// TODO: ARGC, ARGV. the CServer ctor should take a port number
int main() {
- registerSignals();
+ registerSignals();
- g_pChatServer = std::make_unique<CChatServer>();
- g_pChatServer->start();
+ g_pChatServer = std::make_unique<CChatServer>();
+ g_pChatServer->start();
- // died
- g_pChatServer->cleanup();
- g_pChatServer.reset();
+ // died
+ g_pChatServer->cleanup();
+ g_pChatServer.reset();
- return 0;
+ return 0;
}
diff --git a/src/server.cpp b/src/server.cpp
index dbf48a7..8bcffc1 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1,8 +1,8 @@
#include "server.hpp"
+#include "log.hpp"
#include <cstring>
#include <print>
#include <sys/socket.h>
-#include "log.hpp"
CServer::CServer(uint16_t port)
: m_sockfd(Hyprutils::OS::CFileDescriptor{socket(AF_INET, SOCK_STREAM, 0)}) {
@@ -22,12 +22,12 @@ CServer::CServer(uint16_t port)
? throw std::runtime_error("Failed to bind or listen")
: std::println("Server started on port: {}", port);
- log(LOG, "Server: initialized");
+ log(LOG, "Server: initialized");
};
CServer::~CServer() {
m_sockfd.reset();
- log(SYS, "Server: bye");
+ log(SYS, "Server: bye");
}
Hyprutils::OS::CFileDescriptor *CServer::getSocket() {
diff --git a/src/session.cpp b/src/session.cpp
index 1c8dbf1..b3994ee 100644
--- a/src/session.cpp
+++ b/src/session.cpp
@@ -1,26 +1,25 @@
#include "session.hpp"
+#include "chatManager.hpp"
#include "log.hpp"
#include "sessionManager.hpp"
#include <cerrno>
#include <cstring>
#include <sys/socket.h>
-#include "chatManager.hpp"
-
CSession::CSession(Hyprutils::OS::CFileDescriptor sockfd)
: m_sockfd(std::move(sockfd)) {
if (!m_sockfd.isValid())
throw std::runtime_error("session: Failed to create socket");
- log(TRACE, "session: initialized");
+ log(TRACE, "session: initialized");
}
CSession::~CSession() {
onDisconnect();
m_sockfd.reset();
- self->second.reset();
- log(TRACE, "session({}): bye", m_name);
+ self->second.reset();
+ log(TRACE, "session({}): bye", m_name);
}
void CSession::onConnect() {
@@ -55,7 +54,7 @@ void CSession::recvLoop() {
if (!recvData.good)
break;
- g_pChatManager->newMessage({.msg=recvData.data, .username=m_name});
+ g_pChatManager->newMessage({.msg = recvData.data, .username = m_name});
}
}
@@ -82,10 +81,9 @@ CSession::SRecvData CSession::read(const std::string &msg) {
void CSession::run() {
onConnect();
- registerSession() ?
- recvLoop() :
- // TODO: get ip and print the ip also
- log(LOG, "User exited without even registering");
+ registerSession() ? recvLoop() :
+ // TODO: get ip and print the ip also
+ log(LOG, "User exited without even registering");
g_pSessionManager->removeSession(self);
}
@@ -98,19 +96,19 @@ bool CSession::registerSession() {
if (recvData.data[0] == '\n' || recvData.data[0] == ' ') {
write("Name cannot be empty", eFormatType::ERR);
return registerSession();
- }
+ }
- *std::remove(recvData.data, recvData.data+strlen(recvData.data), '\n') = '\0';
- if (g_pSessionManager->nameExists(recvData.data)) {
- write("Name already exists", eFormatType::ERR);
- return registerSession();
- }
+ *std::remove(recvData.data, recvData.data + strlen(recvData.data), '\n') = '\0';
+ if (g_pSessionManager->nameExists(recvData.data)) {
+ write("Name already exists", eFormatType::ERR);
+ return registerSession();
+ }
this->m_name = recvData.data;
log(LOG, "Client registered as: {}", m_name);
- return true;
+ return true;
}
bool CSession::isValid() {
@@ -148,6 +146,6 @@ void CSession::setSelf(std::pair<std::jthread, std::shared_ptr<CSession>> *self)
}
void CSession::onShutdown() {
- write(SYS, "Shutting down, bye");
- g_pSessionManager->removeSession(self);
+ write(SYS, "Shutting down, bye");
+ g_pSessionManager->removeSession(self);
}
diff --git a/src/session.hpp b/src/session.hpp
index b446f4c..8a18950 100644
--- a/src/session.hpp
+++ b/src/session.hpp
@@ -42,6 +42,6 @@ class CSession {
void onErrno(eEventType);
void onRecv(const SRecvData &data);
void onSend(const std::string &msg);
- void onShutdown();
+ void onShutdown();
friend class CSessionManager;
};
diff --git a/src/sessionManager.cpp b/src/sessionManager.cpp
index b4e1ad5..7b40bc2 100644
--- a/src/sessionManager.cpp
+++ b/src/sessionManager.cpp
@@ -1,29 +1,29 @@
#include "sessionManager.hpp"
+#include "log.hpp"
#include "server.hpp"
#include "session.hpp"
#include <algorithm>
#include <unistd.h>
#include <utility>
-#include "log.hpp"
void CSessionManager::shutdownSessions() {
for (const auto &[thread, session] : m_vSessions)
- session->onShutdown();
+ session->onShutdown();
}
CSessionManager::CSessionManager() {
- if (std::atexit([]() { g_pSessionManager->shutdownSessions(); }))
- log(ERR, "Failed to register SessionManager atexit handler, will fallback to quick_exit after hang");
+ if (std::atexit([]() { g_pSessionManager->shutdownSessions(); }))
+ log(ERR, "Failed to register SessionManager atexit handler, will fallback to quick_exit after hang");
- log(LOG, "SessionManager: initialized");
+ log(LOG, "SessionManager: initialized");
};
CSessionManager::~CSessionManager() {
for (auto &[thread, session] : m_vSessions)
- if (thread.joinable())
- thread.join();
+ if (thread.joinable())
+ thread.join();
- log(SYS, "SessionManager: bye");
+ log(SYS, "SessionManager: bye");
}
std::pair<std::jthread, std::shared_ptr<CSession>> *CSessionManager::newSession(Hyprutils::OS::CFileDescriptor sockfd) {
@@ -34,8 +34,8 @@ std::pair<std::jthread, std::shared_ptr<CSession>> *CSessionManager::newSession(
}
void CSessionManager::run() {
- while (true)
- newSession(Hyprutils::OS::CFileDescriptor{accept(g_pServer->getSocket()->get(), nullptr, nullptr) /* awaits new client/session */});
+ while (true)
+ newSession(Hyprutils::OS::CFileDescriptor{accept(g_pServer->getSocket()->get(), nullptr, nullptr) /* awaits new client/session */});
}
void CSessionManager::broadcast(const std::string &msg, eFormatType type) const {
@@ -45,15 +45,16 @@ void CSessionManager::broadcast(const std::string &msg, eFormatType type) const
void CSessionManager::broadcastChat(const std::string &msg, const std::string &username) const {
for (const auto &[thread, session] : m_vSessions) {
- if (!session) continue;
- auto name = session->getName();
- if (name != username)
- session->write(msg, NONE);
- }
+ if (!session)
+ continue;
+ auto name = session->getName();
+ if (name != username)
+ session->write(msg, NONE);
+ }
}
bool CSessionManager::nameExists(const std::string &name) {
- return std::ranges::any_of(m_vSessions, [&name](const auto &s) { return s.second->getName() == name; });
+ return std::ranges::any_of(m_vSessions, [&name](const auto &s) { return s.second->getName() == name; });
}
void CSessionManager::removeSession(std::pair<std::jthread, std::shared_ptr<CSession>> *session) {
diff --git a/src/sessionManager.hpp b/src/sessionManager.hpp
index 8f2130a..be81dd9 100644
--- a/src/sessionManager.hpp
+++ b/src/sessionManager.hpp
@@ -10,22 +10,22 @@ class CSessionManager {
public:
CSessionManager();
~CSessionManager();
-
+
std::pair<std::jthread, std::shared_ptr<CSession>> *newSession(Hyprutils::OS::CFileDescriptor sockfd);
- void run();
- void broadcast(const std::string &msg, eFormatType type = NONE) const;
- void kick(const CSession *session) const;
- void addSession(const CSession &session);
- void removeSession(std::pair<std::jthread, std::shared_ptr<CSession>> *session);
+ void run();
+ void broadcast(const std::string &msg, eFormatType type = NONE) const;
+ void kick(const CSession *session) const;
+ void addSession(const CSession &session);
+ void removeSession(std::pair<std::jthread, std::shared_ptr<CSession>> *session);
- bool nameExists(const std::string &name);
- void shutdownSessions();
+ bool nameExists(const std::string &name);
+ void shutdownSessions();
private:
- void broadcastChat(const std::string &msg, const std::string &username) const;
+ void broadcastChat(const std::string &msg, const std::string &username) const;
std::vector<std::pair<std::jthread, std::shared_ptr<CSession>>> m_vSessions;
- friend class CChatManager;
+ friend class CChatManager;
};
inline std::shared_ptr<CSessionManager> g_pSessionManager;