summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/session.cpp19
-rw-r--r--src/session.hpp24
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;
};