Electroneum
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
epee::net_utils::connection_basic Class Reference

#include <connection_basic.hpp>

Collaboration diagram for epee::net_utils::connection_basic:
Collaboration graph
[legend]

Public Member Functions

 connection_basic (boost::asio::io_service &io_service, std::atomic< long > &ref_sock_count, std::atomic< long > &sock_number)
 
virtual ~connection_basic () noexcept(false)
 
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 set_start_time ()
 
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-electroneum More...
 
static double get_sleep_time (size_t cb)
 
static void set_save_graph (bool save_graph)
 

Public Attributes

std::unique_ptr< connection_basic_pimplmI
 
volatile uint32_t m_want_close_connection
 
std::atomic< boolm_was_shutdown
 
critical_section m_send_que_lock
 
std::list< std::string > m_send_que
 
volatile bool m_is_multithreaded
 
double m_start_time
 
boost::asio::io_service::strand strand_
 Strand to ensure the connection's handlers are not called concurrently. More...
 
boost::asio::ip::tcp::socket socket_
 Socket for the connection. More...
 
std::atomic< long > & m_ref_sock_count
 

Constructor & Destructor Documentation

◆ connection_basic()

epee::net_utils::connection_basic::connection_basic ( boost::asio::io_service &  io_service,
std::atomic< long > &  ref_sock_count,
std::atomic< long > &  sock_number 
)

◆ ~connection_basic()

epee::net_utils::connection_basic::~connection_basic ( )
virtualnoexcept

Member Function Documentation

◆ 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_tos_flag()

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

◆ 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-electroneum

◆ 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_save_graph()

void epee::net_utils::connection_basic::set_save_graph ( bool  save_graph)
static

◆ set_start_time()

void epee::net_utils::connection_basic::set_start_time ( )

◆ 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 
)

Member Data Documentation

◆ m_is_multithreaded

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

◆ m_ref_sock_count

std::atomic<long>& epee::net_utils::connection_basic::m_ref_sock_count

◆ m_send_que

std::list<std::string> epee::net_utils::connection_basic::m_send_que

◆ m_send_que_lock

critical_section epee::net_utils::connection_basic::m_send_que_lock

◆ m_start_time

double epee::net_utils::connection_basic::m_start_time

◆ m_want_close_connection

volatile uint32_t 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::ip::tcp::socket epee::net_utils::connection_basic::socket_

Socket for the connection.

◆ strand_

boost::asio::io_service::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: