From 44bf4a2f9ec31b301f2cc38bd7ee6553373df2ff Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 6 Oct 2025 01:49:13 +0300 Subject: [PATCH] add ReadableConnection interface --- src/network/Network.hpp | 5 ++--- src/network/Sockets.cpp | 2 +- src/network/commons.hpp | 6 ++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/network/Network.hpp b/src/network/Network.hpp index 047e07b4..1110c750 100644 --- a/src/network/Network.hpp +++ b/src/network/Network.hpp @@ -3,13 +3,12 @@ #include "commons.hpp" namespace network { - class TcpConnection : public Connection { + class TcpConnection : public ReadableConnection { public: ~TcpConnection() override = default; virtual void connect(runnable callback) = 0; - virtual int recv(char* buffer, size_t length) = 0; - virtual int available() = 0; + virtual void setNoDelay(bool noDelay) = 0; [[nodiscard]] virtual bool isNoDelay() const = 0; diff --git a/src/network/Sockets.cpp b/src/network/Sockets.cpp index 9e145da0..37d1190d 100644 --- a/src/network/Sockets.cpp +++ b/src/network/Sockets.cpp @@ -231,7 +231,7 @@ public: readBatch.clear(); if (state != ConnectionState::CLOSED) { - shutdown(descriptor, 2); + shutdown(descriptor, SHUT_RDWR); closesocket(descriptor); } } diff --git a/src/network/commons.hpp b/src/network/commons.hpp index ad3c0806..150bde25 100644 --- a/src/network/commons.hpp +++ b/src/network/commons.hpp @@ -75,6 +75,12 @@ namespace network { bool isprivate = false; }; + class ReadableConnection : public Connection { + public: + virtual int recv(char* buffer, size_t length) = 0; + virtual int available() = 0; + }; + class Server { public: virtual ~Server() = default;