LLFIO  v2.00
llfio_v2_xxx::ip::address_v6 Class Reference

Make an address_v6. v6 addresses need to have the form [::]:port. More...

#include "byte_socket_handle.hpp"

Inheritance diagram for llfio_v2_xxx::ip::address_v6:
llfio_v2_xxx::ip::address

Public Types

using bytes_type = span< const byte >
 

Public Member Functions

 address_v6 (const bytes_type &bytes, uint16_t port=0, uint32_t scope_id=0) noexcept
 
 address_v6 (const address_v6 &)=default
 
 address_v6 (address_v6 &&)=default
 
address_v6operator= (const address_v6 &)=default
 
address_v6operator= (address_v6 &&)=default
 
bytes_type to_bytes () const noexcept
 
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.
 
const sockaddr * to_sockaddr () const noexcept
 Returns the address as a sockaddr *.
 
int sockaddrlen () const noexcept
 Returns the size of the sockaddr
 

Static Public Member Functions

static address_v6 any () noexcept
 
static address_v6 loopback () noexcept
 

Protected Attributes

union {
   struct {
      unsigned short   _family
 
      uint16_t   _port
 
      union {
         struct {
            uint32_t   _flowinfo
 
            byte   _addr [16]
 
            uint32_t   _scope_id
 
         }   ipv6
 
         union {
            byte   _addr [4]
 
            uint32_t   _addr_be
 
         }   ipv4
 
      } 
 
   } 
 
   byte   _storage [32]
 
}; 
 

Friends

result< address_v6make_address_v6 (string_view str) noexcept
 Make an address_v6
 

Detailed Description

Make an address_v6. v6 addresses need to have the form [::]:port.

A v6 IP address.


The documentation for this class was generated from the following file: