diff --git a/src/common/session_base.cpp b/src/common/session_base.cpp deleted file mode 100644 index ac70884..0000000 --- a/src/common/session_base.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "session_base.hpp" -#include "logger.hpp" -#include - -SessionBase::SessionBase(TcpSocket socket) - : socket_(std::move(socket)) -{ -} - -void SessionBase::start() -{ - doRead(); -} - -void SessionBase::doRead() -{ - using namespace boost::asio; - - auto self = shared_from_this(); - - auto handler = [this, self](ErrorCode ec, std::size_t bytesTransferred) { - onRead(ec, bytesTransferred); - }; - - socket_.async_read_some(buffer(buffer_), handler); -} - -void SessionBase::onRead(ErrorCode ec, std::size_t bytesTransferred) -{ - if (ec) { - Logger::error("Read error: " + ec.message()); - return; - } - - std::string rawRequest(buffer_.data(), bytesTransferred); - Logger::info("Received request:\n" + rawRequest); - - try { - handleRequest(rawRequest); - } catch (const std::exception &ex) { - Logger::error(std::string("Request handling failed: ") + ex.what()); - } -} - -void SessionBase::doWrite(const std::string &response) -{ - using namespace boost::asio; - - auto self = shared_from_this(); - auto onWriteHandler = - [this, self](ErrorCode ec, std::size_t /*bytesTransferred*/) { - if (ec) { - Logger::error("Write error: " + ec.message()); - } - - ErrorCode shutdownEc; - if (socket_.shutdown(TcpSocket::shutdown_both, shutdownEc)) { - Logger::warn("Shutdown error: " + shutdownEc.message()); - } - - ErrorCode closeEc; - if (socket_.close(closeEc)) { - Logger::warn("Close error: " + closeEc.message()); - } else { - Logger::info("Connection closed"); - } - }; - - async_write(socket_, buffer(response), onWriteHandler); -} diff --git a/src/common/session_base.hpp b/src/common/session_base.hpp deleted file mode 100644 index f480971..0000000 --- a/src/common/session_base.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include "aliases.hpp" -#include -#include -#include - -class SessionBase : public std::enable_shared_from_this -{ - public: - explicit SessionBase(TcpSocket socket); - virtual ~SessionBase() = default; - - void start(); - - protected: - virtual void handleRequest(const std::string_view rawRequest) = 0; - - void doRead(); - void onRead(ErrorCode ec, std::size_t bytesTransferred); - void doWrite(const std::string &response); - - TcpSocket socket_; - std::array buffer_; -}; diff --git a/src/common/tcp_server_base.cpp b/src/common/tcp_server_base.cpp deleted file mode 100644 index 3adce56..0000000 --- a/src/common/tcp_server_base.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include "tcp_server_base.hpp" -#include "logger.hpp" - -TcpServerBase::TcpServerBase(IoContext &io, unsigned short port) - : acceptor_(io, TcpEndpoint(boost::asio::ip::tcp::v4(), port)) -{ -} - -void TcpServerBase::start() -{ - auto doAccept = [this]() { - acceptor_.async_accept([this](ErrorCode ec, TcpSocket socket) { - if (!ec) { - Logger::info("New client connected"); - createSession(std::move(socket)); - } else { - Logger::error("Accept error: " + ec.message()); - } - start(); // continue accepting - }); - }; - doAccept(); -} diff --git a/src/common/tcp_server_base.hpp b/src/common/tcp_server_base.hpp deleted file mode 100644 index 62a588e..0000000 --- a/src/common/tcp_server_base.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "aliases.hpp" - -class TcpServerBase -{ - public: - TcpServerBase(IoContext &io, unsigned short port); - virtual ~TcpServerBase() = default; - - void start(); - - protected: - virtual void createSession(TcpSocket socket) = 0; - - TcpAcceptor acceptor_; -};