LIBWIRE
Next-generation C++17 networking library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Namespaces | Classes | Enumerations | Variables
libwire Namespace Reference

Library namespace, everything in library placed here. More...

Namespaces

 dns
 Namespace with functions for interaction with system DNS resolver.
 
 error
 Namespace with platform-independent error codes.
 
 ipv4
 Namespace with few IPv4 address constants.
 
 ipv6
 Namespace with few IPv6 address constants.
 
 tcp
 Namespace with classes which expose access to system TCP implementation.
 
 udp
 Namespace with classes which expose access to system UDP implementation.
 

Classes

struct  address
 IPv4/IPv6 address structure. More...
 
struct  endpoint
 
class  memory_view
 Non-owning STL-like wrapper for raw memory. More...
 
struct  non_blocking_t
 Dummy type for nonblocking option. More...
 

Enumerations

enum  ip { ip::v4 = 1 << 1, ip::v6 = 1 << 2 }
 
enum  transport { transport::tcp = 1 << 3, transport::udp = 1 << 4 }
 

Variables

constexpr non_blocking_t non_blocking {}
 Toggle non-blocking I/O mode on sockets. More...
 

Detailed Description

Library namespace, everything in library placed here.

Enumeration Type Documentation

enum libwire::ip
strong
Enumerator
v4 
v6 

Definition at line 26 of file protocols.hpp.

enum libwire::transport
strong
Enumerator
tcp 
udp 

Definition at line 31 of file protocols.hpp.

Variable Documentation

constexpr non_blocking_t libwire::non_blocking {}

Toggle non-blocking I/O mode on sockets.

If this option enabled then read() and write() will fail with error::would_block if operation can't be completed immediately.

If this option is disabled then read() can block if there is no received data in system buffer. write() can block too if there is no space left in buffer.

Definition at line 58 of file options.hpp.