Group Network¶
Classes¶
| Type | Name | 
|---|---|
| class | coro::io_recv Awaitable type to perform recvI/O request. | 
| class | coro::io_recv_from Awaitable type to perform recvfromI/O request. | 
| class | coro::io_send Awaitable type to perform sendI/O request. | 
| class | coro::io_send_to Awaitable type to perform sendtoI/O request. | 
| class | coro::io_work_t A struct to describe "1 I/O request" to system API. When I/O request is submitted, an I/O task becomes 1 coroutine handle. | 
Public Types¶
| Type | Name | 
|---|---|
| typedef gsl::span< std::byte > | coro::io_buffer_t This is simply a view to storage. Be aware that it doesn't have ownership. | 
Public Functions¶
| Type | Name | 
|---|---|
| uint32_t | coro::get_address (const addrinfo & hint, gsl::czstring<> host, gsl::czstring<> serv, gsl::span< sockaddr_in > output) noexcept Thin wrapper of getaddrinfofor IPv4. | 
| uint32_t | coro::get_address (const addrinfo & hint, gsl::czstring<> host, gsl::czstring<> serv, gsl::span< sockaddr_in6 > output) noexcept Thin wrapper of getaddrinfofor IPv6. | 
| uint32_t | coro::get_name (const sockaddr_in & addr, gsl::zstring< NI_MAXHOST > name, gsl::zstring< NI_MAXSERV > serv, int32_t flags=NI_NUMERICHOST | 
| uint32_t | coro::get_name (const sockaddr_in6 & addr, gsl::zstring< NI_MAXHOST > name, gsl::zstring< NI_MAXSERV > serv, int32_t flags=NI_NUMERICHOST | 
| void | coro::poll_net_tasks (uint64_t nano) noexcept Poll internal I/O works and invoke user callback. | 
| auto | coro::recv_from (uint64_t sd, sockaddr_in & remote, io_buffer_t buf, io_work_t & work) noexcept Constructs io_recv_fromawaitable with the given parameters. | 
| auto | coro::recv_from (uint64_t sd, sockaddr_in6 & remote, io_buffer_t buf, io_work_t & work) noexcept Constructs io_recv_fromawaitable with the given parameters. | 
| auto | coro::recv_stream (uint64_t sd, io_buffer_t buf, uint32_t flag, io_work_t & work) noexcept Constructs io_recvawaitable with the given parameters. | 
| auto | coro::send_stream (uint64_t sd, io_buffer_t buf, uint32_t flag, io_work_t & work) noexcept Constructs io_sendawaitable with the given parameters. | 
| auto | coro::send_to (uint64_t sd, const sockaddr_in & remote, io_buffer_t buf, io_work_t & work) noexcept Constructs io_send_toawaitable with the given parameters. | 
| auto | coro::send_to (uint64_t sd, const sockaddr_in6 & remote, io_buffer_t buf, io_work_t & work) noexcept Constructs io_send_toawaitable with the given parameters. | 
Detailed Description¶
Helper types to apply co_await for socket operations + Name resolution utilities 
Public Types Documentation¶
typedef io_buffer_t¶
using coro::io_buffer_t = typedef gsl::span<std::byte>;
Public Functions Documentation¶
function get_address¶
uint32_t coro::get_address (
    const addrinfo & hint,
    gsl::czstring<> host,
    gsl::czstring<> serv,
    gsl::span< sockaddr_in > output
) noexcept
Parameters:
- hint
- host
- serv
- output
Returns:
uint32_t Error code from the getaddrinfo that can be the argument of gai_strerror 
See also: getaddrinfo
See also: gai_strerror
function get_address¶
uint32_t coro::get_address (
    const addrinfo & hint,
    gsl::czstring<> host,
    gsl::czstring<> serv,
    gsl::span< sockaddr_in6 > output
) noexcept
Parameters:
- hint
- host
- serv
- output
Returns:
uint32_t Error code from the getaddrinfo that can be the argument of gai_strerror 
See also: getaddrinfo
See also: gai_strerror
function get_name¶
uint32_t coro::get_name (
    const sockaddr_in & addr,
    gsl::zstring< NI_MAXHOST > name,
    gsl::zstring< NI_MAXSERV > serv,
    int32_t flags=NI_NUMERICHOST|NI_NUMERICSERV
) noexcept
Parameters:
- addr
- name
- servcan be- nullptr
- flags
Returns:
uint32_t EAI_AGAIN ...
See also: getnameinfo
function get_name¶
uint32_t coro::get_name (
    const sockaddr_in6 & addr,
    gsl::zstring< NI_MAXHOST > name,
    gsl::zstring< NI_MAXSERV > serv,
    int32_t flags=NI_NUMERICHOST|NI_NUMERICSERV
) noexcept
Parameters:
- addr
- name
- servcan be- nullptr
- flags
Returns:
uint32_t EAI_AGAIN ...
See also: getnameinfo
function poll_net_tasks¶
void coro::poll_net_tasks (
    uint64_t nano
) noexcept
Parameters:
- nanotimeout in nanoseconds
Exception:
- std::system_error
function recv_from¶
auto coro::recv_from (
    uint64_t sd,
    sockaddr_in & remote,
    io_buffer_t buf,
    io_work_t & work
) noexcept
Parameters:
- sd
- remote
- buf
- work
Returns:
function recv_from¶
auto coro::recv_from (
    uint64_t sd,
    sockaddr_in6 & remote,
    io_buffer_t buf,
    io_work_t & work
) noexcept
Parameters:
- sd
- remote
- buf
- work
Returns:
function recv_stream¶
auto coro::recv_stream (
    uint64_t sd,
    io_buffer_t buf,
    uint32_t flag,
    io_work_t & work
) noexcept
Parameters:
- sd
- buf
- flag
- work
Returns:
function send_stream¶
auto coro::send_stream (
    uint64_t sd,
    io_buffer_t buf,
    uint32_t flag,
    io_work_t & work
) noexcept
Parameters:
- sd
- buf
- flag
- work
Returns:
function send_to¶
auto coro::send_to (
    uint64_t sd,
    const sockaddr_in & remote,
    io_buffer_t buf,
    io_work_t & work
) noexcept
Parameters:
- sd
- remote
- buf
- work
Returns:
function send_to¶
auto coro::send_to (
    uint64_t sd,
    const sockaddr_in6 & remote,
    io_buffer_t buf,
    io_work_t & work
) noexcept
Parameters:
- sd
- remote
- buf
- work
Returns: