diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-04-13 11:25:31 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-04-13 11:25:31 +0200 |
commit | c8ab1b58b183db0cb856a667b2f410d7b7a57a44 (patch) | |
tree | 6085e952d0af2e98d19b1f50d14b3644af67302d /src/common/network/Socket.h | |
parent | 2f05dd6c07fa31a44680a5dd5e2e7c8b2a700b55 (diff) |
Core/Network: Minor include cleanup and add more required functions and typdefs to SslStream and BoostBeastSocketWrapper
Diffstat (limited to 'src/common/network/Socket.h')
-rw-r--r-- | src/common/network/Socket.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/common/network/Socket.h b/src/common/network/Socket.h index 565cc175318..e91d3198b58 100644 --- a/src/common/network/Socket.h +++ b/src/common/network/Socket.h @@ -44,6 +44,13 @@ enum class SocketReadCallbackResult Stop }; +inline boost::asio::mutable_buffer PrepareReadBuffer(MessageBuffer& readBuffer) +{ + readBuffer.Normalize(); + readBuffer.EnsureFreeSpace(); + return boost::asio::buffer(readBuffer.GetWritePointer(), readBuffer.GetRemainingSpace()); +} + template <typename Callable> concept SocketReadCallback = Trinity::invocable_r<Callable, SocketReadCallbackResult>; @@ -82,6 +89,10 @@ struct ReadConnectionInitializer final : SocketConnectionInitializer @tparam Stream stream type used for operations on socket Stream must implement the following methods: + boost::asio::io_context::executor_type get_executor(); + + bool is_open() const; + void close(boost::system::error_code& error); void shutdown(boost::asio::socket_base::shutdown_type what, boost::system::error_code& shutdownError); @@ -164,9 +175,7 @@ public: if (!IsOpen()) return; - _readBuffer.Normalize(); - _readBuffer.EnsureFreeSpace(); - _socket.async_read_some(boost::asio::buffer(_readBuffer.GetWritePointer(), _readBuffer.GetRemainingSpace()), + _socket.async_read_some(PrepareReadBuffer(_readBuffer), [self = this->shared_from_this(), callback = std::forward<Callback>(callback)](boost::system::error_code const& error, size_t transferredBytes) mutable { if (self->ReadHandlerInternal(error, transferredBytes)) |