My Project 3.5.5
C++ Distributed Hash Table
Loading...
Searching...
No Matches
dht::SockAddr Class Reference

#include <sockaddr.h>

Classes

struct  ipCmp

Public Member Functions

 SockAddr (const SockAddr &o)
 SockAddr (SockAddr &&o) noexcept
 SockAddr (const sockaddr *sa, socklen_t length)
 SockAddr (const sockaddr *sa)
 SockAddr (const sockaddr_storage &ss, socklen_t len)
bool operator< (const SockAddr &o) const
bool equals (const SockAddr &o) const
SockAddroperator= (const SockAddr &o)
SockAddroperator= (SockAddr &&o)
std::string toString () const
sa_family_t getFamily () const
void setFamily (sa_family_t af)
void setAny ()
void setLoopback ()
in_port_t getPort () const
void setPort (in_port_t p)
void setAddress (const char *address)
socklen_t getLength () const
 operator bool () const noexcept
const sockaddr * get () const
sockaddr * get ()
const sockaddr_in & getIPv4 () const
const sockaddr_in6 & getIPv6 () const
sockaddr_in & getIPv4 ()
sockaddr_in6 & getIPv6 ()
sockaddr * release ()
bool isLoopback () const
bool isPrivate () const
bool isUnspecified () const
bool isMappedIPv4 () const
SockAddr getMappedIPv4 ()
SockAddr getMappedIPv6 ()

Static Public Member Functions

static std::vector< SockAddrresolve (const std::string &host, const std::string &service={})

Friends

std::ostream & operator<< (std::ostream &s, const SockAddr &h)

Detailed Description

A Socket Address (sockaddr*), with abstraction for IPv4, IPv6 address families.

Definition at line 62 of file sockaddr.h.

Constructor & Destructor Documentation

◆ SockAddr() [1/6]

dht::SockAddr::SockAddr ( )
inline

Definition at line 64 of file sockaddr.h.

◆ SockAddr() [2/6]

dht::SockAddr::SockAddr ( const SockAddr & o)
inline

Definition at line 65 of file sockaddr.h.

◆ SockAddr() [3/6]

dht::SockAddr::SockAddr ( SockAddr && o)
inlinenoexcept

Definition at line 68 of file sockaddr.h.

◆ SockAddr() [4/6]

dht::SockAddr::SockAddr ( const sockaddr * sa,
socklen_t length )
inline

Build from existing address.

Definition at line 75 of file sockaddr.h.

◆ SockAddr() [5/6]

dht::SockAddr::SockAddr ( const sockaddr * sa)
inline

Definition at line 80 of file sockaddr.h.

◆ SockAddr() [6/6]

dht::SockAddr::SockAddr ( const sockaddr_storage & ss,
socklen_t len )
inline

Build from an existing sockaddr_storage structure.

Definition at line 96 of file sockaddr.h.

Member Function Documentation

◆ equals()

bool dht::SockAddr::equals ( const SockAddr & o) const
inline

Definition at line 106 of file sockaddr.h.

◆ get() [1/2]

sockaddr * dht::SockAddr::get ( )
inline

Returns the address to the managed sockaddr structure. The accessible length is returned by getLength().

Definition at line 244 of file sockaddr.h.

◆ get() [2/2]

const sockaddr * dht::SockAddr::get ( ) const
inline

Returns the address to the managed sockaddr structure. The accessible length is returned by getLength().

Definition at line 238 of file sockaddr.h.

◆ getFamily()

sa_family_t dht::SockAddr::getFamily ( ) const
inline

Returns the address family or AF_UNSPEC if the address is not set.

Definition at line 128 of file sockaddr.h.

◆ getIPv4() [1/2]

sockaddr_in & dht::SockAddr::getIPv4 ( )
inline

Definition at line 252 of file sockaddr.h.

◆ getIPv4() [2/2]

const sockaddr_in & dht::SockAddr::getIPv4 ( ) const
inline

Definition at line 246 of file sockaddr.h.

◆ getIPv6() [1/2]

sockaddr_in6 & dht::SockAddr::getIPv6 ( )
inline

Definition at line 255 of file sockaddr.h.

◆ getIPv6() [2/2]

const sockaddr_in6 & dht::SockAddr::getIPv6 ( ) const
inline

Definition at line 249 of file sockaddr.h.

◆ getLength()

socklen_t dht::SockAddr::getLength ( ) const
inline

Returns the accessible byte length at the pointer returned by get(). If zero, get() returns null.

Definition at line 225 of file sockaddr.h.

◆ getPort()

in_port_t dht::SockAddr::getPort ( ) const
inline

Retreive the port (in host byte order) or 0 if the address is not of a supported family.

Definition at line 190 of file sockaddr.h.

◆ isLoopback()

bool dht::SockAddr::isLoopback ( ) const

Return true if address is a loopback IP address.

◆ isPrivate()

bool dht::SockAddr::isPrivate ( ) const

Return true if address is not a public IP address.

◆ operator bool()

dht::SockAddr::operator bool ( ) const
inlineexplicitnoexcept

An address is defined to be true if its length is not zero.

Definition at line 230 of file sockaddr.h.

◆ operator<()

bool dht::SockAddr::operator< ( const SockAddr & o) const
inline

Definition at line 100 of file sockaddr.h.

◆ operator=() [1/2]

SockAddr & dht::SockAddr::operator= ( const SockAddr & o)
inline

Definition at line 110 of file sockaddr.h.

◆ operator=() [2/2]

SockAddr & dht::SockAddr::operator= ( SockAddr && o)
inline

Definition at line 114 of file sockaddr.h.

◆ release()

sockaddr * dht::SockAddr::release ( )
inline

Releases the ownership of the managed object, if any. The caller is responsible for deleting the object with free().

Definition at line 263 of file sockaddr.h.

◆ setAddress()

void dht::SockAddr::setAddress ( const char * address)

Set the address part of the socket address from a numeric IP address (string representation). Family must be already set. Throws in case of parse failue.

◆ setAny()

void dht::SockAddr::setAny ( )
inline

Set address to any

Definition at line 159 of file sockaddr.h.

◆ setFamily()

void dht::SockAddr::setFamily ( sa_family_t af)
inline

Resize the managed structure to the appropriate size (if needed), in which case the sockaddr structure is cleared to zero, and set the address family field (sa_family).

Definition at line 135 of file sockaddr.h.

◆ setLoopback()

void dht::SockAddr::setLoopback ( )
inline

Set address to loopback.

Definition at line 174 of file sockaddr.h.

◆ setPort()

void dht::SockAddr::setPort ( in_port_t p)
inline

Set the port. The address must be of a supported family.

Parameters
pThe port in host byte order.

Definition at line 204 of file sockaddr.h.

◆ toString()

std::string dht::SockAddr::toString ( ) const
inline

Definition at line 121 of file sockaddr.h.

◆ operator<<

std::ostream & operator<< ( std::ostream & s,
const SockAddr & h )
friend

Definition at line 312 of file sockaddr.h.


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