matador::address Class Reference

#include <address.hpp>

Public Types

typedef address_router< V4v4
 
typedef address_router< V6v6
 

Public Member Functions

 address ()=default
 
 address (const sockaddr_in &addr)
 
 address (const sockaddr_in6 &addr)
 
 address (const address &x)=default
 
addressoperator= (const address &x)
 
 address (address &&x) noexcept
 
addressoperator= (address &&x) noexcept
 
 ~address ()
 
unsigned int to_ulong () const
 
std::string to_string () const
 
void port (unsigned short pn)
 
unsigned short port () const
 
bool is_v4 () const
 
bool is_v6 () const
 
sockaddr * addr ()
 
const sockaddr * addr () const
 
sockaddr_in * addr_v4 ()
 
const sockaddr_in * addr_v4 () const
 
sockaddr_in6 * addr_v6 ()
 
const sockaddr_in6 * addr_v6 () const
 
socklen_t size () const
 

Friends

template<protocol_family PF>
class address_router
 

Detailed Description

The address class represents a IPv4 or IPv6 address.

Member Typedef Documentation

◆ v4

typedef address_router<V4> matador::address::v4

Shortcut to the internal IPv4 address router

◆ v6

typedef address_router<V6> matador::address::v6

Shortcut to the internal IPv6 address router

Constructor & Destructor Documentation

◆ address() [1/5]

matador::address::address ( )
default

Default constructor

◆ address() [2/5]

matador::address::address ( const sockaddr_in &  addr)
explicit

Constructs an address from the given addr representing a IPv4 socket address structure

Parameters
addrInitial IPv4 Socket address

◆ address() [3/5]

matador::address::address ( const sockaddr_in6 &  addr)
explicit

Constructs an address from the given addr representing a IPv6 socket address structure

Parameters
addrInitial IPv6 Socket address

◆ address() [4/5]

matador::address::address ( const address x)
default

Copy constructs an address from the given address x

Parameters
xAddress to copy from

◆ address() [5/5]

matador::address::address ( address &&  x)
noexcept

Move copy constructs an address from the given address x

Parameters
xAddress to move copy from

◆ ~address()

matador::address::~address ( )

Destructs the address

Member Function Documentation

◆ addr() [1/2]

sockaddr * matador::address::addr ( )

Returns the raw sockaddr structure

Returns
The raw sockaddr structure

◆ addr() [2/2]

const sockaddr * matador::address::addr ( ) const

Returns the raw sockaddr structure

Returns
The raw sockaddr structure

◆ addr_v4() [1/2]

sockaddr_in * matador::address::addr_v4 ( )

Returns the IPv4 sockaddr_in structure

Returns
The IPv4 sockaddr_in structure

◆ addr_v4() [2/2]

const sockaddr_in * matador::address::addr_v4 ( ) const

Returns the IPv4 sockaddr_in structure

Returns
The IPv4 sockaddr_in structure

◆ addr_v6() [1/2]

sockaddr_in6 * matador::address::addr_v6 ( )

Returns the IPv6 sockaddr_in6 structure

Returns
The IPv6 sockaddr_in6 structure

◆ addr_v6() [2/2]

const sockaddr_in6 * matador::address::addr_v6 ( ) const

Returns the IPv6 sockaddr_in6 structure

Returns
The IPv6 sockaddr_in6 structure

◆ is_v4()

bool matador::address::is_v4 ( ) const

Returns true if address is IPv4

Returns
True if IPv4 address

◆ is_v6()

bool matador::address::is_v6 ( ) const

Returns true if address is IPv4

Returns
True if IPv4 address

◆ operator=() [1/2]

address & matador::address::operator= ( address &&  x)
noexcept

Move assign an address from the given address x

Parameters
xAddress to move assign from
Returns
The moved address

◆ operator=() [2/2]

address & matador::address::operator= ( const address x)

Copy assign an address from the given address x

Parameters
xAddress to assign from
Returns
The assigned address

◆ port() [1/2]

unsigned short matador::address::port ( ) const

Returns the current port number of the address.

Returns
The current port number

◆ port() [2/2]

void matador::address::port ( unsigned short  pn)

Sets the port number

Parameters
pnPort number to set

◆ size()

socklen_t matador::address::size ( ) const

Returns the size of the underlying address structure.

Returns
Size of the underlying address structure

◆ to_string()

std::string matador::address::to_string ( ) const

Return the address in string format either in IPv4 dotted format or in IPv6 colon based format

Returns
The address as string

◆ to_ulong()

unsigned int matador::address::to_ulong ( ) const

Returns the address as unsigned long value

Returns
The address as unsigned long value

The documentation for this class was generated from the following file:
  • matador/net/address.hpp