libcaf
0.16.3
|
Classes | |
class | acceptor |
An acceptor is responsible for accepting incoming connections. More... | |
class | acceptor_impl |
A concrete acceptor with a technology-dependent policy. More... | |
class | acceptor_manager |
An acceptor manager configures an acceptor and provides callbacks for incoming connections as well as for error handling. More... | |
class | datagram_handler_impl |
A concrete datagram_handler with a technology-dependent policy. More... | |
class | datagram_manager |
A datagram manager provides callbacks for outgoing datagrams as well as for error handling. More... | |
class | datagram_servant_impl |
Default datagram servant implementation. More... | |
class | doorman_impl |
Default doorman implementation. More... | |
class | event_handler |
A socket I/O event handler. More... | |
class | interfaces |
Utility class bundling access to network interface names and addresses. More... | |
struct | ip_endpoint |
A hashable wrapper for a sockaddr storage. More... | |
class | manager |
A manager configures an I/O device and provides callbacks for various I/O operations. More... | |
class | multiplexer |
Low-level backend for IO multiplexing. More... | |
class | pipe_reader |
An event handler for the internal event pipe. More... | |
struct | protocol |
Bundles protocol information for network and transport layer communication. More... | |
class | receive_buffer |
A container that does not call constructors and destructors for its values. More... | |
class | scribe_impl |
Default scribe implementation. More... | |
class | stream |
A stream capable of both reading and writing. More... | |
class | stream_impl |
A concrete stream with a technology-dependent policy for sending and receiving data from a socket. More... | |
class | stream_manager |
A stream manager configures an IO stream and provides callbacks for incoming data as well as for error handling. More... | |
Typedefs | |
using | event_mask_type = short |
using | multiplexer_data = pollfd |
using | multiplexer_poll_shadow_data = std::vector< event_handler * > |
using | address_listing = std::map< protocol::network, std::vector< std::string > > |
using | interfaces_map = std::map< std::string, address_listing > |
using | multiplexer_ptr = std::unique_ptr< multiplexer > |
using | setsockopt_ptr = const void * |
using | getsockopt_ptr = void * |
using | socket_send_ptr = const void * |
using | socket_recv_ptr = void * |
using | socket_size_type = unsigned |
using | signed_size_type = std::make_signed< size_t >::type |
using | native_socket = int |
Enumerations | |
enum | operation { read, write, propagate_error } |
Identifies network IO operations, i.e., read or write. | |
enum | rw_state { rw_state::success, rw_state::failure, rw_state::indeterminate } |
Denotes the returned state of read and write operations on sockets. More... | |
Functions | |
connection_handle | conn_hdl_from_socket (native_socket fd) |
accept_handle | accept_hdl_from_socket (native_socket fd) |
expected< native_socket > | new_tcp_connection (const std::string &host, uint16_t port, optional< protocol::network > preferred=none) |
expected< native_socket > | new_tcp_acceptor_impl (uint16_t port, const char *addr, bool reuse_addr) |
expected< std::pair< native_socket, ip_endpoint > > | new_remote_udp_endpoint_impl (const std::string &host, uint16_t port, optional< protocol::network > preferred=none) |
expected< std::pair< native_socket, protocol::network > > | new_local_udp_endpoint_impl (uint16_t port, const char *addr, bool reuse_addr=false, optional< protocol::network > preferred=none) |
bool | operator== (const ip_endpoint &lhs, const ip_endpoint &rhs) |
std::string | to_string (const ip_endpoint &ep) |
std::string | host (const ip_endpoint &ep) |
uint16_t | port (const ip_endpoint &ep) |
uint32_t | family (const ip_endpoint &ep) |
error | load_endpoint (ip_endpoint &ep, uint32_t &f, std::string &h, uint16_t &p, size_t &l) |
error | save_endpoint (ip_endpoint &ep, uint32_t &f, std::string &h, uint16_t &p, size_t &l) |
template<class Inspector > | |
Inspector::result_type | inspect (Inspector &fun, ip_endpoint &ep) |
int64_t | int64_from_native_socket (native_socket sock) |
int | last_socket_error () |
Returns the last socket error as an integer. | |
void | close_socket (native_socket fd) |
Close socket fd . | |
bool | would_block_or_temporarily_unavailable (int errcode) |
Returns true if errcode indicates that an operation would block or return nothing at the moment and can be tried again at a later point. | |
std::string | last_socket_error_as_string () |
Returns the last socket error as human-readable string. | |
std::pair< native_socket, native_socket > | create_pipe () |
Creates two connected sockets. More... | |
expected< void > | child_process_inherit (native_socket fd, bool new_value) |
Sets fd to be inherited by child processes if new_value == true or not if new_value == false . More... | |
expected< void > | nonblocking (native_socket fd, bool new_value) |
Sets fd to nonblocking if set_nonblocking == true or to blocking if set_nonblocking == false throws network_error on error. | |
expected< void > | tcp_nodelay (native_socket fd, bool new_value) |
Enables or disables Nagle's algorithm on fd . More... | |
expected< void > | allow_sigpipe (native_socket fd, bool new_value) |
Enables or disables SIGPIPE events from fd . | |
expected< void > | allow_udp_connreset (native_socket fd, bool new_value) |
Enables or disables SIO_UDP_CONNRESET error on fd . | |
expected< int > | send_buffer_size (native_socket fd) |
Get the socket buffer size for fd . | |
expected< void > | send_buffer_size (native_socket fd, int new_value) |
Set the socket buffer size for fd . | |
bool | is_error (signed_size_type res, bool is_nonblock) |
Convenience functions for checking the result of recv or send . | |
expected< uint16_t > | local_port_of_fd (native_socket fd) |
Returns the locally assigned port of fd . | |
expected< std::string > | local_addr_of_fd (native_socket fd) |
Returns the locally assigned address of fd . | |
expected< uint16_t > | remote_port_of_fd (native_socket fd) |
Returns the port used by the remote host of fd . | |
expected< std::string > | remote_addr_of_fd (native_socket fd) |
Returns the remote host address of fd . | |
void | shutdown_read (native_socket fd) |
Closes the read channel for a socket. | |
void | shutdown_write (native_socket fd) |
Closes the write channel for a socket. | |
void | shutdown_both (native_socket fd) |
Closes the both read and write channel for a socket. | |
std::string | to_string (operation op) |
Variables | |
const event_mask_type | input_mask |
Defines the bitmask for input (read) socket events. | |
const event_mask_type | output_mask |
Defines the bitmask for output (write) socket events. | |
const event_mask_type | error_mask |
Defines the bitmask for error socket events. | |
const int | ec_out_of_memory |
const int | ec_interrupted_syscall |
const int | no_sigpipe_socket_flag |
const int | no_sigpipe_io_flag |
constexpr native_socket | invalid_native_socket = -1 |
Contains classes and functions used for network abstraction.
|
strong |
expected<void> caf::io::network::child_process_inherit | ( | native_socket | fd, |
bool | new_value | ||
) |
Sets fd to be inherited by child processes if new_value == true
or not if new_value == false
.
Not implemented on Windows. throws network_error
on error
std::pair<native_socket, native_socket> caf::io::network::create_pipe | ( | ) |
Creates two connected sockets.
The former is the read handle and the latter is the write handle.
expected<void> caf::io::network::tcp_nodelay | ( | native_socket | fd, |
bool | new_value | ||
) |
Enables or disables Nagle's algorithm on fd
.
network_error |