summaryrefslogtreecommitdiff
path: root/src/session.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/session.cpp')
-rw-r--r--src/session.cpp121
1 files changed, 60 insertions, 61 deletions
diff --git a/src/session.cpp b/src/session.cpp
index da7ebf6..9f2b53e 100644
--- a/src/session.cpp
+++ b/src/session.cpp
@@ -1,112 +1,111 @@
#include "session.hpp"
+#include <cerrno>
#include <cmath>
+#include <cstring>
#include <ostream>
-#include <sys/socket.h>
#include <print>
-#include <cerrno>
-#include <cstring>
+#include <sys/socket.h>
-CSession::CSession(Hyprutils::OS::CFileDescriptor sockfd) : m_sockfd(std::move(sockfd)) {
- if (!m_sockfd.isValid())
- throw std::runtime_error("Failed to create socket");
+CSession::CSession(Hyprutils::OS::CFileDescriptor sockfd)
+ : m_sockfd(std::move(sockfd)) {
+ if (!m_sockfd.isValid())
+ throw std::runtime_error("Failed to create socket");
}
CSession::~CSession() {
- m_sockfd.reset();
+ m_sockfd.reset();
}
void CSession::onConnect() const {
- std::println("Client connected");
+ std::println("Client connected");
}
void CSession::onDisconnect() const {
- std::println("Client disconnected");
+ std::println("Client disconnected");
}
void CSession::onErrno() const {
- std::println("Error: {}", strerror(errno));
+ std::println("Error: {}", strerror(errno));
}
void CSession::onRecv(SRecvData &data) const {
- std::println("Received: {}", data.data, data.dataSize);
+ std::println("Received: {}", data.data, data.dataSize);
}
void CSession::recvManager() {
- while (true) {
- CSession::SRecvData recvData = read();
- if (!recvData.good) {
- break;
- }
- }
+ while (true) {
+ CSession::SRecvData recvData = read();
+ if (!recvData.good)
+ break;
+ }
}
CSession::SRecvData CSession::read() {
- SRecvData recvData;
- ssize_t dataSize = recv(m_sockfd.get(), recvData.data, recvData.dataSize, 0);
- if (dataSize < 0) {
- recvData.good = false;
- onErrno();
- }
- if (dataSize == 0) {
- recvData.good = false;
- onDisconnect();
- }
- onRecv(recvData);
- return recvData;
+ SRecvData recvData;
+ ssize_t dataSize = recv(m_sockfd.get(), recvData.data, recvData.dataSize, 0);
+ if (dataSize < 0) {
+ recvData.good = false;
+ onErrno();
+ }
+ if (dataSize == 0) {
+ recvData.good = false;
+ onDisconnect();
+ }
+ onRecv(recvData);
+ return recvData;
}
CSession::SRecvData CSession::read(std::string &msg) {
- write(msg);
- SRecvData recvData;
- ssize_t dataSize = recv(m_sockfd.get(), recvData.data, recvData.dataSize, 0);
+ write(msg);
+ SRecvData recvData;
+ ssize_t dataSize = recv(m_sockfd.get(), recvData.data, recvData.dataSize, 0);
- if (dataSize > 0) {
- recvData.good = false;
+ if (dataSize > 0) {
+ recvData.good = false;
- if (dataSize < 0)
- onErrno();
+ if (dataSize < 0)
+ onErrno();
- if (dataSize == 0)
- onDisconnect();
- }
- onRecv(recvData);
+ if (dataSize == 0)
+ onDisconnect();
+ }
+ onRecv(recvData);
- return recvData;
+ return recvData;
}
void CSession::run() {
- onConnect();
- // std::jthread recvThread(&CSession::recvManager, this);
- registerSession();
- recvManager();
+ onConnect();
+ // std::jthread recvThread(&CSession::recvManager, this);
+ registerSession();
+ recvManager();
}
bool CSession::registerSession() {
- SRecvData rervData = read((std::string&)"Name: ");
- if (!rervData.good) {
- return false;
- }
- m_name = rervData.data;
+ SRecvData recvData = read((std::string &)"Name: ");
+ if (!recvData.good)
+ return false;
+ m_name = recvData.data;
- std::println("Client registered as: {}", m_name);
+ std::println("Client registered as: {}", m_name);
- return true;
+ return true;
}
bool CSession::isValid() const {
- return m_sockfd.isValid() && !m_name.empty();
+ return m_sockfd.isValid() && !m_name.empty();
}
bool CSession::write(const std::string &msg) const {
- bool bad = false;
- ssize_t bytes_sent = send(m_sockfd.get(), msg.c_str(), msg.size(), 0);
- if (bytes_sent < 0) {
- bad = true;
- onErrno();
- }
- return bad;
+ bool bad = false;
+ ssize_t bytes_sent = send(m_sockfd.get(), msg.c_str(), msg.size(), 0);
+ if (bytes_sent < 0) {
+ bad = true;
+ onErrno();
+ }
+ return bad;
}
std::string CSession::getName() const {
- return m_name;
+ return m_name;
}