LLFIO v2.00
Loading...
Searching...
No Matches
llfio_v2_xxx::ip::address_v4 Class Reference

A v4 IP address. More...

#include "byte_socket_handle.hpp"

Inheritance diagram for llfio_v2_xxx::ip::address_v4:
llfio_v2_xxx::ip::address

Public Types

using bytes_type = span< const byte >
 
using uint_type = uint32_t
 

Public Member Functions

 address_v4 (const bytes_type &bytes, uint16_t port=0) noexcept
 
 address_v4 (uint_type addr, uint16_t port=0) noexcept
 
 address_v4 (const address_v4 &)=default
 
 address_v4 (address_v4 &&)=default
 
address_v4operator= (const address_v4 &)=default
 
address_v4operator= (address_v4 &&)=default
 
bytes_type to_bytes () const noexcept
 
uint_type to_uint () 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_v4 any () noexcept
 
static address_v4 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_v4make_address_v4 (string_view str) noexcept
 Make an address_v4
 

Detailed Description

A v4 IP address.

Constructor & Destructor Documentation

◆ address_v4()

constexpr llfio_v2_xxx::ip::address_v4::address_v4 ( )
inlineconstexprnoexcept
283{}

Member Function Documentation

◆ is_default()

bool llfio_v2_xxx::ip::address::is_default ( ) const
inlinenoexceptinherited

True if address is default constructed.

157{ return _family == 0; }

◆ operator!=()

bool llfio_v2_xxx::ip::address::operator!= ( const address o) const
inlinenoexceptinherited

True if addresses are not equal.

146{ return 0 != memcmp(_storage, o._storage, sizeof(_storage)); }

◆ operator<()

bool llfio_v2_xxx::ip::address::operator< ( const address o) const
inlinenoexceptinherited

True if address is less than.

148{ return memcmp(_storage, o._storage, sizeof(_storage)) < 0; }

◆ operator==()

bool llfio_v2_xxx::ip::address::operator== ( const address o) const
inlinenoexceptinherited

True if addresses are equal.

144{ return 0 == memcmp(_storage, o._storage, sizeof(_storage)); }

◆ to_sockaddr()

const sockaddr * llfio_v2_xxx::ip::address::to_sockaddr ( ) const
inlinenoexceptinherited

Returns the address as a sockaddr *.

177{ return (const sockaddr *) _storage; }

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