|
C++ Actor Framework 1.0.0
|
Contains classes and functions used for network abstraction. More...
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 | address_listing = std::map<protocol::network, std::vector<std::string>> |
| using | event_mask_type = short |
| using | multiplexer_data = pollfd |
| using | multiplexer_poll_shadow_data = std::vector<event_handler*> |
| using | interfaces_map |
| 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_t<size_t> |
| using | native_socket = int |
Enumerations | |
| enum class | operation { read , write , propagate_error } |
| Identifies network IO operations, i.e., read or write. | |
| enum class | rw_state { success , failure , indeterminate , want_read } |
| Denotes the returned state of read and write operations on sockets. More... | |
Functions | |
| int | add_flag (operation op, int bf) |
| int | del_flag (operation op, int bf) |
| template<int Family> | |
| bool | ip_connect (native_socket fd, const std::string &host, uint16_t port) |
| expected< native_socket > | new_tcp_connection (const std::string &host, uint16_t port, std::optional< protocol::network > preferred) |
| template<class SockAddrType > | |
| expected< void > | read_port (native_socket fd, SockAddrType &sa) |
| expected< void > | set_inaddr_any (native_socket, sockaddr_in &sa) |
| expected< void > | set_inaddr_any (native_socket fd, sockaddr_in6 &sa) |
| template<int Family, int SockType = SOCK_STREAM> | |
| expected< native_socket > | new_ip_acceptor_impl (uint16_t port, const char *addr, bool reuse_addr, bool any) |
| 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, std::optional< protocol::network > preferred) |
| expected< std::pair< native_socket, protocol::network > > | new_local_udp_endpoint_impl (uint16_t port, const char *addr, bool reuse, std::optional< protocol::network > preferred) |
| connection_handle | conn_hdl_from_socket (native_socket fd) |
| accept_handle | accept_hdl_from_socket (native_socket fd) |
| template<class T > | |
| void * | vptr (T *ptr) |
| void * | fetch_in_addr (int family, sockaddr *addr) |
| int | fetch_addr_str (bool get_ipv4, bool get_ipv6, char(&buf)[INET6_ADDRSTRLEN], sockaddr *addr) |
| template<class F > | |
| void | for_each_address (bool get_ipv4, bool get_ipv6, F fun) |
| 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) |
| bool | is_ipv4 (const ip_endpoint &ep) |
| bool | is_ipv6 (const ip_endpoint &ep) |
| error_code< sec > | load_endpoint (ip_endpoint &ep, uint32_t &f, std::string &h, uint16_t &p, size_t &l) |
| error_code< sec > | save_endpoint (ip_endpoint &ep, uint32_t &f, std::string &h, uint16_t &p, size_t &l) |
| bool | operator!= (const ip_endpoint &lhs, const ip_endpoint &rhs) |
| template<class Inspector > | |
| bool | inspect (Inspector &f, ip_endpoint &x) |
| 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. | |
| string | last_socket_error_as_string () |
| Returns the last socket error as human-readable string. | |
| string | socket_error_as_string (int errcode) |
| Returns a human-readable string for a given socket error. | |
| 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. | |
| expected< void > | keepalive (native_socket fd, bool new_value) |
Enables keepalive on fd. Throws network_error on error. | |
| 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 > | 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_CONNRESETerror on fd. | |
| std::pair< native_socket, native_socket > | create_pipe () |
| Creates two connected sockets. | |
| 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. | |
| expected< void > | tcp_nodelay (native_socket fd, bool new_value) |
Enables or disables Nagle's algorithm on fd. | |
| bool | is_error (signed_size_type res, bool is_nonblock) |
Convenience functions for checking the result of recv or send. | |
| expected< string > | local_addr_of_fd (native_socket fd) |
Returns the locally assigned address of fd. | |
| expected< uint16_t > | local_port_of_fd (native_socket fd) |
Returns the locally assigned port of fd. | |
| expected< string > | remote_addr_of_fd (native_socket fd) |
Returns the remote host address of fd. | |
| expected< uint16_t > | remote_port_of_fd (native_socket fd) |
Returns the port used by the remote host 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. | |
| int64_t | int64_from_native_socket (native_socket sock) |
| CAF_IO_EXPORT std::string | to_string (operation) |
| CAF_IO_EXPORT bool | from_string (std::string_view, operation &) |
| CAF_IO_EXPORT bool | from_integer (std::underlying_type_t< operation >, operation &) |
| template<class Inspector > | |
| bool | inspect (Inspector &f, operation &x) |
| std::string | to_string (const protocol &x) |
| Converts a protocol into a transport/network string representation, e.g., "TCP/IPv4". | |
| constexpr bool | operator== (const protocol &lhs, const protocol &rhs) noexcept |
| constexpr bool | operator!= (const protocol &lhs, const protocol &rhs) noexcept |
| std::string | to_string (protocol::transport x) |
| template<class Inspector > | |
| bool | inspect (Inspector &f, protocol::transport &x) |
| std::string | to_string (protocol::network x) |
| template<class Inspector > | |
| bool | inspect (Inspector &f, protocol::network &x) |
| template<class Inspector > | |
| bool | inspect (Inspector &f, protocol &x) |
Contains classes and functions used for network abstraction.
| typedef std::map< std::string, address_listing > caf::io::network::interfaces_map |
|
strong |
Denotes the returned state of read and write operations on sockets.
| CAF_IO_EXPORT 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
| CAF_IO_EXPORT 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.
| CAF_IO_EXPORT expected< void > caf::io::network::tcp_nodelay | ( | native_socket | fd, |
| bool | new_value ) |
Enables or disables Nagle's algorithm on fd.
| network_error |