LLFIO
v2.00
|
A version independent IP address. More...
#include "byte_socket_handle.hpp"
Public Member Functions | |
address (const sockaddr_in &storage) noexcept | |
address (const sockaddr_in6 &storage) noexcept | |
address (const address &)=default | |
address (address &&)=default | |
address & | operator= (const address &)=default |
address & | operator= (address &&)=default |
bool | operator== (const address &o) const noexcept |
True if addresses are equal. | |
bool | operator!= (const address &o) const noexcept |
True if addresses are not equal. | |
bool | operator< (const address &o) const noexcept |
True if address is less than. | |
bool | is_loopback () const noexcept |
True if address is loopback. | |
bool | is_multicast () const noexcept |
True if address is multicast. | |
bool | is_any () const noexcept |
True if address is any. | |
bool | is_default () const noexcept |
True if address is default constructed. | |
bool | is_v4 () const noexcept |
True if address is v4. | |
bool | is_v6 () const noexcept |
True if address is v6. | |
unsigned short | raw_family () const noexcept |
Returns the raw family of the address. | |
enum family | family () const noexcept |
Returns the family of the addres. | |
uint16_t | port () const noexcept |
Returns the port of the address. | |
uint32_t | flowinfo () const noexcept |
Returns the IPv6 flow info, if address is v6. | |
uint32_t | scope_id () const noexcept |
Returns the IPv6 scope id, if address is v6. | |
span< const byte > | to_bytes () const noexcept |
Returns the bytes of the address in network order. | |
const sockaddr * | to_sockaddr () const noexcept |
Returns the address as a sockaddr * . | |
int | sockaddrlen () const noexcept |
Returns the size of the sockaddr | |
Friends | |
class | llfio_v2_xxx::byte_socket_handle |
class | llfio_v2_xxx::listening_byte_socket_handle |
std::ostream & | operator<< (std::ostream &s, const address &v) |
Write address to stream. | |
A version independent IP address.
This is inspired by asio::ip::address
, but it also adds port()
from asio::ip::endpoint
and a few other observer member functions i.e. it fuses ASIO's many types into one.
The reason why is that this type is a simple wrap of struct sockaddr_in
or struct sockaddr_in6
, it doesn't split those structures into multiple C++ types.