diff options
| -rw-r--r-- | src/session.cpp | 19 | ||||
| -rw-r--r-- | src/session.hpp | 24 |
2 files changed, 23 insertions, 20 deletions
diff --git a/src/session.cpp b/src/session.cpp index 7ce2238..06f129e 100644 --- a/src/session.cpp +++ b/src/session.cpp @@ -18,15 +18,15 @@ CSession::~CSession() { m_sockfd.reset(); } -void CSession::onConnect() const { +void CSession::onConnect() { log(LOG, "Client connected"); } -void CSession::onDisconnect() const { +void CSession::onDisconnect() { log(LOG, "Client disconnected"); } -void CSession::onErrno(eEventType eventType) const { +void CSession::onErrno(eEventType eventType) { const auto err = strerror(errno); switch (eventType) { case READ: @@ -36,17 +36,18 @@ void CSession::onErrno(eEventType eventType) const { } } -void CSession::onRecv(const SRecvData &data) const { +void CSession::onRecv(const SRecvData &data) { log(LOG, "Received: {}", data.data, data.dataSize); } -void CSession::onSend(const std::string &msg) const { +void CSession::onSend(const std::string &msg) { log(LOG, "Sent: {}", msg); } void CSession::recvManager() { while (true) { SRecvData recvData = read(); + g_pSessionManager->broadcast(recvData.data, eFormatType::CHAT); if (!recvData.good) break; } @@ -98,7 +99,7 @@ bool CSession::registerSession() { return true; } -bool CSession::isValid() const { +bool CSession::isValid() { if (!m_sockfd.isValid() || m_name.empty()) return false; @@ -109,7 +110,7 @@ bool CSession::isValid() const { } template <typename... Args> -bool CSession::write(eFormatType type, std::format_string<Args...> fmt, Args &&...args) const { +bool CSession::write(eFormatType type, std::format_string<Args...> fmt, Args &&...args) { std::string msg = NFormatter::fmt(type, fmt, std::forward<Args>(args)...); if (send(m_sockfd.get(), msg.c_str(), msg.size(), 0) < 0) { @@ -120,11 +121,11 @@ bool CSession::write(eFormatType type, std::format_string<Args...> fmt, Args &&. return true; } -bool CSession::write(const std::string &msg, eFormatType type) const { +bool CSession::write(const std::string &msg, eFormatType type) { return write(type, "{}", msg); } -std::string CSession::getName() const { +std::string CSession::getName() { return m_name; } diff --git a/src/session.hpp b/src/session.hpp index d5fb7e6..669da18 100644 --- a/src/session.hpp +++ b/src/session.hpp @@ -8,20 +8,22 @@ class CSession { public: + CSession(Hyprutils::OS::CFileDescriptor m_sockfd); + ~CSession(); + struct SRecvData { char data[1024] = {0}; ssize_t dataSize = sizeof(data); bool good = true; }; - CSession(Hyprutils::OS::CFileDescriptor m_sockfd); - ~CSession(); - std::string getName() const; - bool isValid() const; + + std::string getName(); + bool isValid(); SRecvData read(); SRecvData read(const std::string &msg); - bool write(const std::string &msg, eFormatType type) const; + bool write(const std::string &msg, eFormatType type); template <typename... Args> - bool write(eFormatType type, std::format_string<Args...> fmt, Args &&...args) const; + bool write(eFormatType type, std::format_string<Args...> fmt, Args &&...args); void run(); void setSelf(std::pair<std::jthread, std::shared_ptr<CSession>> *self); @@ -35,10 +37,10 @@ class CSession { std::string m_name; void recvManager(); bool registerSession(); - void onConnect() const; - void onDisconnect() const; - void onErrno(eEventType) const; - void onRecv(const SRecvData &data) const; - void onSend(const std::string &msg) const; + void onConnect(); + void onDisconnect(); + void onErrno(eEventType); + void onRecv(const SRecvData &data); + void onSend(const std::string &msg); friend class CSessionManager; }; |
