My Project 3.2.0
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 ()
 
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

OPENDHT_PUBLIC friend 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 229 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 223 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 237 of file sockaddr.h.

◆ getIPv4() [2/2]

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

Definition at line 231 of file sockaddr.h.

◆ getIPv6() [1/2]

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

Definition at line 240 of file sockaddr.h.

◆ getIPv6() [2/2]

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

Definition at line 234 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 210 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 175 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 215 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 248 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 Network Interface 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.

◆ 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 189 of file sockaddr.h.

◆ toString()

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

Definition at line 121 of file sockaddr.h.

Friends And Related Symbol Documentation

◆ operator<<

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

Definition at line 297 of file sockaddr.h.


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