Monero
Loading...
Searching...
No Matches
epee::net_utils::connection_basic Class Reference

#include <connection_basic.hpp>

Inheritance diagram for epee::net_utils::connection_basic:
Collaboration diagram for epee::net_utils::connection_basic:

Public Member Functions

 connection_basic (boost::asio::io_context &context, boost::asio::ip::tcp::socket &&sock, std::shared_ptr< connection_basic_shared_state > state, ssl_support_t ssl_support)
 connection_basic (boost::asio::io_context &context, std::shared_ptr< connection_basic_shared_state > state, ssl_support_t ssl_support)
virtual ~connection_basic () noexcept(false)
connection_basic_shared_stateget_state () noexcept
boost::asio::ip::tcp::socket & socket ()
ssl_support_t get_ssl_support () const
void disable_ssl ()
bool handshake (boost::asio::ssl::stream_base::handshake_type type, boost::asio::const_buffer buffer={})
template<typename MutableBufferSequence, typename ReadHandler>
void async_read_some (const MutableBufferSequence &buffers, ReadHandler &&handler)
template<typename ConstBufferSequence, typename WriteHandler>
void async_write_some (const ConstBufferSequence &buffers, WriteHandler &&handler)
template<typename ConstBufferSequence, typename WriteHandler>
void async_write (const ConstBufferSequence &buffers, WriteHandler &&handler)
void do_send_handler_write (const void *ptr, size_t cb)
void do_send_handler_write_from_queue (const boost::system::error_code &e, size_t cb, int q_len)
void logger_handle_net_write (size_t size)
void logger_handle_net_read (size_t size)
void sleep_before_packet (size_t packet_size, int phase, int q_len)

Static Public Member Functions

static void set_rate_up_limit (uint64_t limit)
static void set_rate_down_limit (uint64_t limit)
static uint64_t get_rate_up_limit ()
static uint64_t get_rate_down_limit ()
static void set_tos_flag (int tos)
static int get_tos_flag ()
static void save_limit_to_file (int limit)
 for dr-monero
static double get_sleep_time (size_t cb)

Public Attributes

std::unique_ptr< connection_basic_pimplmI
std::atomic< bool > m_want_close_connection
std::atomic< bool > m_was_shutdown
critical_section m_send_que_lock
std::deque< byte_slicem_send_que
volatile bool m_is_multithreaded
boost::asio::io_context::strand strand_
 Strand to ensure the connection's handlers are not called concurrently.
boost::asio::ssl::stream< boost::asio::ip::tcp::socket > socket_
 Socket for the connection.
ssl_support_t m_ssl_support

Private Attributes

const std::shared_ptr< connection_basic_shared_statem_state

Constructor & Destructor Documentation

◆ connection_basic() [1/2]

epee::net_utils::connection_basic::connection_basic ( boost::asio::io_context & context,
boost::asio::ip::tcp::socket && sock,
std::shared_ptr< connection_basic_shared_state > state,
ssl_support_t ssl_support )

◆ connection_basic() [2/2]

epee::net_utils::connection_basic::connection_basic ( boost::asio::io_context & context,
std::shared_ptr< connection_basic_shared_state > state,
ssl_support_t ssl_support )

◆ ~connection_basic()

epee::net_utils::connection_basic::~connection_basic ( )
virtual

Member Function Documentation

◆ async_read_some()

template<typename MutableBufferSequence, typename ReadHandler>
void epee::net_utils::connection_basic::async_read_some ( const MutableBufferSequence & buffers,
ReadHandler && handler )
inline

◆ async_write()

template<typename ConstBufferSequence, typename WriteHandler>
void epee::net_utils::connection_basic::async_write ( const ConstBufferSequence & buffers,
WriteHandler && handler )
inline

◆ async_write_some()

template<typename ConstBufferSequence, typename WriteHandler>
void epee::net_utils::connection_basic::async_write_some ( const ConstBufferSequence & buffers,
WriteHandler && handler )
inline

◆ disable_ssl()

void epee::net_utils::connection_basic::disable_ssl ( )
inline

◆ do_send_handler_write()

void epee::net_utils::connection_basic::do_send_handler_write ( const void * ptr,
size_t cb )

◆ do_send_handler_write_from_queue()

void epee::net_utils::connection_basic::do_send_handler_write_from_queue ( const boost::system::error_code & e,
size_t cb,
int q_len )

◆ get_rate_down_limit()

uint64_t epee::net_utils::connection_basic::get_rate_down_limit ( )
static

◆ get_rate_up_limit()

uint64_t epee::net_utils::connection_basic::get_rate_up_limit ( )
static

◆ get_sleep_time()

double epee::net_utils::connection_basic::get_sleep_time ( size_t cb)
static

◆ get_ssl_support()

ssl_support_t epee::net_utils::connection_basic::get_ssl_support ( ) const
inline

◆ get_state()

connection_basic_shared_state & epee::net_utils::connection_basic::get_state ( )
inlinenoexcept
Returns
shared_state object passed in construction (ptr never changes).

◆ get_tos_flag()

int epee::net_utils::connection_basic::get_tos_flag ( )
static

◆ handshake()

bool epee::net_utils::connection_basic::handshake ( boost::asio::ssl::stream_base::handshake_type type,
boost::asio::const_buffer buffer = {} )
inline

◆ logger_handle_net_read()

void epee::net_utils::connection_basic::logger_handle_net_read ( size_t size)

◆ logger_handle_net_write()

void epee::net_utils::connection_basic::logger_handle_net_write ( size_t size)

◆ save_limit_to_file()

void epee::net_utils::connection_basic::save_limit_to_file ( int limit)
static

for dr-monero

◆ set_rate_down_limit()

void epee::net_utils::connection_basic::set_rate_down_limit ( uint64_t limit)
static

◆ set_rate_up_limit()

void epee::net_utils::connection_basic::set_rate_up_limit ( uint64_t limit)
static

◆ set_tos_flag()

void epee::net_utils::connection_basic::set_tos_flag ( int tos)
static

◆ sleep_before_packet()

void epee::net_utils::connection_basic::sleep_before_packet ( size_t packet_size,
int phase,
int q_len )

◆ socket()

boost::asio::ip::tcp::socket & epee::net_utils::connection_basic::socket ( )
inline

Member Data Documentation

◆ m_is_multithreaded

volatile bool epee::net_utils::connection_basic::m_is_multithreaded

◆ m_send_que

std::deque<byte_slice> epee::net_utils::connection_basic::m_send_que

◆ m_send_que_lock

critical_section epee::net_utils::connection_basic::m_send_que_lock

◆ m_ssl_support

ssl_support_t epee::net_utils::connection_basic::m_ssl_support

◆ m_state

const std::shared_ptr<connection_basic_shared_state> epee::net_utils::connection_basic::m_state
private

◆ m_want_close_connection

std::atomic<bool> epee::net_utils::connection_basic::m_want_close_connection

◆ m_was_shutdown

std::atomic<bool> epee::net_utils::connection_basic::m_was_shutdown

◆ mI

std::unique_ptr< connection_basic_pimpl > epee::net_utils::connection_basic::mI

◆ socket_

boost::asio::ssl::stream<boost::asio::ip::tcp::socket> epee::net_utils::connection_basic::socket_

Socket for the connection.

◆ strand_

boost::asio::io_context::strand epee::net_utils::connection_basic::strand_

Strand to ensure the connection's handlers are not called concurrently.


The documentation for this class was generated from the following files: