dodo  0.0.1
A C++ library to create containerized Linux services
dodo::network Namespace Reference

Interface for network communication. More...

Namespaces

 protocol
 Application layer protocols.
 

Data Structures

class  Address
 Generic network Address, supporting ipv4 and ipv6 transparently. More...
 
struct  AddrInfo
 Address info, comprising the canonical name of a host, and list of address info items for the host. More...
 
struct  AddrInfoItem
 Address info item as used in AddrInfo. More...
 
class  BaseSocket
 Interface to and common implementation of concrete sockets (Socket, TLSSocket). More...
 
class  FileReadBuffer
 File-based VirtualReadBuffer, conventient for testing purposes as parsers can be tested against file instead of network sources. More...
 
class  Socket
 A Linux socket. More...
 
class  SocketParams
 Socket parameters - the family (domain), socket type and protocol triplet. More...
 
class  SocketReadBuffer
 SocketReadBuffer is a VirtualReadBuffer that reads from the BaseSocket in chunks internally. More...
 
class  StringReadBuffer
 String based VirtualReadBuffer, conventient for testing purposes as parsers can be tested against strings instead of network sources. More...
 
class  TCPConnectionData
 Class to track a connection. More...
 
class  TCPListener
 The TCPListener listens, accepts connections and generates socket events to produce TCP work to a pool of TCPServer worker objects. More...
 
class  TCPListenerTimer
 Updates the attribute now_ in the TCPListener at a regular interval to avoid excessive number of calls to gettimeofday in the TCPListener event loop where time high time precision is of lesser importance. More...
 
class  TCPServer
 Used in conjunction with TCPListener to implement high speed, multithreaded TCP services. More...
 
class  TLSContext
 TLS security context. More...
 
class  TLSSocket
 Socket for TLS encrypted traffic between trusted endpoints. More...
 
class  URI
 Uniform Resource Identifier. More...
 
class  VirtualReadBuffer
 Interface to read individual bytes whilst the implementation can read from an actual source (such as a network buffer) in larger chunks, reducing the number of required system calls. More...
 
class  X509Certificate
 X509 public key certificate (PKC) interface. More...
 
class  X509CertificateSigningRequest
 X509 Certificate signing request (CSR) interface. More...
 
class  X509Common
 Interface common to X509 documents. More...
 

Functions

void closeLibrary ()
 Close the dodo::network library. More...
 
void initLibrary ()
 Initialize the dodo::network library. More...
 
bool operator& (const TCPListener::SockState &self, const TCPListener::SockState &other)
 Bitwise & on SocketWork. More...
 
const dodo::common::Putsoperator<< (const dodo::common::Puts &os, TCPListener::SockState state)
 Nice-write to a Puts. More...
 
TCPListener::SockStateoperator^= (TCPListener::SockState &self, TCPListener::SockState other)
 Bitwise ^= on SocketWork. More...
 
TCPListener::SockStateoperator|= (TCPListener::SockState &self, TCPListener::SockState other)
 Bitwise |= on SocketWork. More...
 

Variables

const std::string yaml_cycle_max_throttles = "cycle-max-throttles"
 cycle_max_throttles YAML configuration name More...
 
const std::string yaml_listener_sleep_ms = "listener-sleep-ms"
 listener_sleep_ms YAML configuration name More...
 
const std::string yaml_maxconnections = "max-connections"
 maxconnections YAML configuration name More...
 
const std::string yaml_maxqdepth = "max-queue-depth"
 maxqdepth YAML configuration name More...
 
const std::string yaml_maxservers = "max-servers"
 maxservers YAML configuration name More...
 
const std::string yaml_minservers = "min-servers"
 minservers YAML configuration name More...
 
const std::string yaml_pollbatch = "poll-batch"
 pollbatch YAML configuration name More...
 
const std::string yaml_receive_timeout_seconds = "receive-timeout-seconds"
 yaml_receive_timeout_seconds YAML configuration name More...
 
const std::string yaml_recvbufsz = "receive-buffer"
 recvbufsz YAML configuration name More...
 
const std::string yaml_send_timeout_seconds = "send-timeout-seconds"
 yaml_send_timeout_seconds YAML configuration name More...
 
const std::string yaml_sendbufsz = "send-buffer"
 sendbufsz YAML configuration name More...
 
const std::string yaml_server_idle_ttl_s = "server-idle-ttl-s"
 server_idle_ttl_s YAML configuration name More...
 
const std::string yaml_stat_trc_interval_s = "stat-trc-interval-s"
 stat_trc_interval_s YAML configuration name More...
 
const std::string yaml_tcp_keep_alive = "tcp-keep-alive"
 yaml_tcp_keep_alive YAML configuration name More...
 
const std::string yaml_throttle_sleep_us = "throttle-sleep-us"
 throttle_sleep_us YAML configuration name More...
 

Detailed Description

Interface for network communication.

See Secure sockets for details.

Function Documentation

◆ closeLibrary()

void dodo::network::closeLibrary ( )

Close the dodo::network library.

Definition at line 63 of file network.hpp.

Referenced by dodo::closeLibrary().

Here is the caller graph for this function:

◆ initLibrary()

void dodo::network::initLibrary ( )

Initialize the dodo::network library.

Definition at line 48 of file network.hpp.

Referenced by dodo::initLibrary().

Here is the caller graph for this function:

◆ operator&()

bool dodo::network::operator& ( const TCPListener::SockState self,
const TCPListener::SockState other 
)
inline

Bitwise & on SocketWork.

Parameters
selfthe lvalue
otherthe rvalue
Returns
the lvalue

Definition at line 595 of file tcplistener.hpp.

◆ operator<<()

const dodo::common::Puts& dodo::network::operator<< ( const dodo::common::Puts os,
TCPListener::SockState  state 
)
inline

Nice-write to a Puts.

Parameters
osThe output Puts
stateThe TCPListener::SockState to write.
Returns
The output Puts

Definition at line 606 of file tcplistener.hpp.

References dodo::network::TCPListener::New, dodo::network::TCPListener::None, dodo::network::TCPListener::Read, and dodo::network::TCPListener::Shut.

◆ operator^=()

TCPListener::SockState& dodo::network::operator^= ( TCPListener::SockState self,
TCPListener::SockState  other 
)
inline

Bitwise ^= on SocketWork.

Parameters
selfthe lvalue
otherthe rvalue
Returns
the lvalue

Definition at line 585 of file tcplistener.hpp.

◆ operator|=()

TCPListener::SockState& dodo::network::operator|= ( TCPListener::SockState self,
TCPListener::SockState  other 
)
inline

Bitwise |= on SocketWork.

Parameters
selfthe lvalue
otherthe rvalue
Returns
the lvalue

Definition at line 575 of file tcplistener.hpp.

Variable Documentation

◆ yaml_cycle_max_throttles

const std::string dodo::network::yaml_cycle_max_throttles = "cycle-max-throttles"

cycle_max_throttles YAML configuration name

Definition at line 127 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_listener_sleep_ms

const std::string dodo::network::yaml_listener_sleep_ms = "listener-sleep-ms"

listener_sleep_ms YAML configuration name

Definition at line 123 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_maxconnections

const std::string dodo::network::yaml_maxconnections = "max-connections"

maxconnections YAML configuration name

Definition at line 111 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_maxqdepth

const std::string dodo::network::yaml_maxqdepth = "max-queue-depth"

maxqdepth YAML configuration name

Definition at line 113 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_maxservers

const std::string dodo::network::yaml_maxservers = "max-servers"

maxservers YAML configuration name

Definition at line 109 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_minservers

const std::string dodo::network::yaml_minservers = "min-servers"

minservers YAML configuration name

Definition at line 107 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_pollbatch

const std::string dodo::network::yaml_pollbatch = "poll-batch"

pollbatch YAML configuration name

Definition at line 121 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_receive_timeout_seconds

const std::string dodo::network::yaml_receive_timeout_seconds = "receive-timeout-seconds"

yaml_receive_timeout_seconds YAML configuration name

Definition at line 133 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_recvbufsz

const std::string dodo::network::yaml_recvbufsz = "receive-buffer"

recvbufsz YAML configuration name

Definition at line 117 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_send_timeout_seconds

const std::string dodo::network::yaml_send_timeout_seconds = "send-timeout-seconds"

yaml_send_timeout_seconds YAML configuration name

Definition at line 131 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_sendbufsz

const std::string dodo::network::yaml_sendbufsz = "send-buffer"

sendbufsz YAML configuration name

Definition at line 115 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_server_idle_ttl_s

const std::string dodo::network::yaml_server_idle_ttl_s = "server-idle-ttl-s"

server_idle_ttl_s YAML configuration name

Definition at line 119 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().

◆ yaml_stat_trc_interval_s

const std::string dodo::network::yaml_stat_trc_interval_s = "stat-trc-interval-s"

stat_trc_interval_s YAML configuration name

Definition at line 129 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::Params::Params().

◆ yaml_tcp_keep_alive

const std::string dodo::network::yaml_tcp_keep_alive = "tcp-keep-alive"

yaml_tcp_keep_alive YAML configuration name

Definition at line 135 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::Params::Params().

◆ yaml_throttle_sleep_us

const std::string dodo::network::yaml_throttle_sleep_us = "throttle-sleep-us"

throttle_sleep_us YAML configuration name

Definition at line 125 of file tcplistener.cpp.

Referenced by dodo::network::TCPListener::construct(), and dodo::network::TCPListener::Params::Params().