Skip to content

rlpx::socket::SocketTransport

More...

#include <socket_transport.hpp>

Public Types

Name
using boost::asio::ip::tcp tcp
using boost::asio::strand< boost::asio::any_io_executor > Strand

Public Functions

Name
SocketTransport(tcp::socket socket)
Create transport from connected socket.
SocketTransport(const SocketTransport & ) =delete
SocketTransport & operator=(const SocketTransport & ) =delete
SocketTransport(SocketTransport && ) =default
SocketTransport & operator=(SocketTransport && ) =default
Result< ByteBuffer > read_exact(size_t num_bytes, boost::asio::yield_context yield)
Async read exact number of bytes.
VoidResult write_all(ByteView data, boost::asio::yield_context yield)
Async write all bytes.
VoidResult close()
Close socket gracefully.
bool is_open() const
Query connection state.
std::string remote_address() const
uint16_t remote_port() const
std::string local_address() const
uint16_t local_port() const

Detailed Description

class rlpx::socket::SocketTransport;

Transport layer abstraction over TCP socket. Provides async read/write operations with proper error handling.

Public Types Documentation

using tcp

using rlpx::socket::SocketTransport::tcp = boost::asio::ip::tcp;

using Strand

using rlpx::socket::SocketTransport::Strand = boost::asio::strand<boost::asio::any_io_executor>;

Public Functions Documentation

function SocketTransport

explicit SocketTransport(
    tcp::socket socket
)

Create transport from connected socket.

function SocketTransport

SocketTransport(
    const SocketTransport & 
) =delete

function operator=

SocketTransport & operator=(
    const SocketTransport & 
) =delete

function SocketTransport

SocketTransport(
    SocketTransport && 
) =default

function operator=

SocketTransport & operator=(
    SocketTransport && 
) =default

function read_exact

Result< ByteBuffer > read_exact(
    size_t num_bytes,
    boost::asio::yield_context yield
)

Async read exact number of bytes.

Parameters:

  • num_bytes Number of bytes to read.
  • yield Boost.Asio stackful coroutine context.

Return: Filled ByteBuffer on success, SessionError on failure.

function write_all

VoidResult write_all(
    ByteView data,
    boost::asio::yield_context yield
)

Async write all bytes.

Parameters:

  • data Data to send.
  • yield Boost.Asio stackful coroutine context.

Return: Success or SessionError on failure.

function close

VoidResult close()

Close socket gracefully.

function is_open

bool is_open() const

Query connection state.

function remote_address

std::string remote_address() const

function remote_port

uint16_t remote_port() const

function local_address

std::string local_address() const

function local_port

uint16_t local_port() const

Updated on 2026-04-13 at 23:22:46 -0700