blocxx
BLOCXX_NAMESPACE::SocketAddress Class Reference

#include <SocketAddress.hpp>

Public Types

enum  AddressType { UNSET , INET , UDS }
 

Public Member Functions

AddressType getType () const
 
UInt16 getPort () const
 Get the port associated with the address.
 
 ~SocketAddress ()
 
const String getName () const
 Returns the hostname (FQDN) of the address.
 
const String getAddress () const
 Returns the IP address of the host.
 
const SocketAddress_tgetNativeForm () const
 
size_t getNativeFormSize () const
 
const InetSocketAddress_tgetInetAddress () const
 Get a pointer to the InetSocketAddress_t precondition: getType() == INET.
 
const UnixSocketAddress_tgetUnixAddress () const
 Get a pointer to the UnixSocketAddress_t precondition: getType() == UDS.
 
void assignFromNativeForm (const UnixSocketAddress_t *address, size_t len)
 
const String toString () const
 Returns the IP address and the port with a colon in between.
 
void assignFromNativeForm (const InetSocketAddress_t *address, size_t len)
 
 SocketAddress ()
 

Static Public Member Functions

static SocketAddress getByName (const String &host, unsigned short port=0)
 Do a DNS lookup on a hostname and return an SocketAddress for that host.
 
static SocketAddress getAnyLocalHost (UInt16 port=0)
 Do a DNS lookup on a hostname and return a list of all addresses that map to that hostname.
 
static SocketAddress allocEmptyAddress (AddressType type)
 Allocate an empty SocketAddress.
 
static SocketAddress getUDS (const String &filename)
 

Static Public Attributes

static const char *const ALL_LOCAL_ADDRESSES = "0.0.0.0"
 

Private Member Functions

 SocketAddress (const InetSocketAddress_t &nativeForm)
 
 SocketAddress (const UnixSocketAddress_t &nativeForm)
 

Static Private Member Functions

static SocketAddress getFromNativeForm (const InetAddress_t &nativeForm, UInt16 nativePort, const String &hostname)
 
static SocketAddress getFromNativeForm (const InetSocketAddress_t &nativeForm)
 
static SocketAddress getFromNativeForm (const UnixSocketAddress_t &nativeForm)
 

Private Attributes

String m_name
 
String m_address
 
size_t m_nativeSize
 
InetSocketAddress_t m_inetNativeAddress
 
UnixSocketAddress_t m_UDSNativeAddress
 
AddressType m_type
 

Detailed Description

Definition at line 55 of file SocketAddress.hpp.

Member Enumeration Documentation

◆ AddressType

Enumerator
UNSET 
INET 
UDS 

Definition at line 60 of file SocketAddress.hpp.

Constructor & Destructor Documentation

◆ ~SocketAddress()

BLOCXX_NAMESPACE::SocketAddress::~SocketAddress ( )
inline

Definition at line 103 of file SocketAddress.hpp.

◆ SocketAddress() [1/3]

BLOCXX_NAMESPACE::SocketAddress::SocketAddress ( )

◆ SocketAddress() [2/3]

BLOCXX_NAMESPACE::SocketAddress::SocketAddress ( const InetSocketAddress_t & nativeForm)
private

Definition at line 401 of file SocketAddress.cpp.

References assignFromNativeForm(), INET, m_nativeSize, and m_type.

◆ SocketAddress() [3/3]

BLOCXX_NAMESPACE::SocketAddress::SocketAddress ( const UnixSocketAddress_t & nativeForm)
private

Definition at line 393 of file SocketAddress.cpp.

References assignFromNativeForm(), m_nativeSize, m_type, and UDS.

Member Function Documentation

◆ allocEmptyAddress()

SocketAddress BLOCXX_NAMESPACE::SocketAddress::allocEmptyAddress ( AddressType type)
static

Allocate an empty SocketAddress.

Returns
an empty address

Definition at line 423 of file SocketAddress.cpp.

References BLOCXX_THROW, getFromNativeForm(), INET, SocketAddress(), and UDS.

Referenced by BLOCXX_NAMESPACE::ServerSocketImpl::doListen().

◆ assignFromNativeForm() [1/2]

void BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm ( const InetSocketAddress_t * address,
size_t len )

Definition at line 338 of file SocketAddress.cpp.

References INET, m_address, m_inetNativeAddress, m_nativeSize, and m_type.

◆ assignFromNativeForm() [2/2]

void BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm ( const UnixSocketAddress_t * address,
size_t len )

Definition at line 361 of file SocketAddress.cpp.

References m_address, m_name, m_nativeSize, m_type, m_UDSNativeAddress, and UDS.

Referenced by SocketAddress(), and SocketAddress().

◆ getAddress()

const String BLOCXX_NAMESPACE::SocketAddress::getAddress ( ) const

Returns the IP address of the host.

Returns
The IP address of the host

Definition at line 413 of file SocketAddress.cpp.

References m_address.

Referenced by toString().

◆ getAnyLocalHost()

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getAnyLocalHost ( UInt16 port = 0)
static

Do a DNS lookup on a hostname and return a list of all addresses that map to that hostname.

Parameters
hostThe hostname
portThe port
Returns
An Array of SocketAddresses for the host and port Get an SocketAddress appropriate for referring to the local host
Parameters
portThe port
Returns
An SocketAddress representing the local machine

Definition at line 286 of file SocketAddress.cpp.

References getFromNativeForm(), BLOCXX_NAMESPACE::gethostbynameMutex, BLOCXX_NAMESPACE::hton32(), BLOCXX_NAMESPACE::String::indexOf(), m_name, BLOCXX_NAMESPACE::String::npos, and SocketAddress().

◆ getByName()

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getByName ( const String & host,
unsigned short port = 0 )
static

Do a DNS lookup on a hostname and return an SocketAddress for that host.

Parameters
hostThe hostname
portThe port
Returns
An SocketAddress for the host and port
Exceptions
UnknownHostException

Definition at line 154 of file SocketAddress.cpp.

References BLOCXX_THROW, BLOCXX_NAMESPACE::String::c_str(), getFromNativeForm(), BLOCXX_NAMESPACE::gethostbynameMutex, INET, m_name, m_type, and SocketAddress().

Referenced by BLOCXX_NAMESPACE::ServerSocketImpl::doListenIPv4().

◆ getFromNativeForm() [1/3]

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getFromNativeForm ( const InetAddress_t & nativeForm,
UInt16 nativePort,
const String & hostname )
staticprivate

◆ getFromNativeForm() [2/3]

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getFromNativeForm ( const InetSocketAddress_t & nativeForm)
staticprivate

Definition at line 219 of file SocketAddress.cpp.

References SocketAddress().

◆ getFromNativeForm() [3/3]

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getFromNativeForm ( const UnixSocketAddress_t & nativeForm)
staticprivate

Definition at line 228 of file SocketAddress.cpp.

References SocketAddress().

◆ getInetAddress()

const InetSocketAddress_t * BLOCXX_NAMESPACE::SocketAddress::getInetAddress ( ) const

Get a pointer to the InetSocketAddress_t precondition: getType() == INET.

Definition at line 269 of file SocketAddress.cpp.

References m_inetNativeAddress.

Referenced by BLOCXX_NAMESPACE::SocketBaseImpl::connect(), and BLOCXX_NAMESPACE::ServerSocketImpl::doListenIPv4().

◆ getName()

const String BLOCXX_NAMESPACE::SocketAddress::getName ( ) const

Returns the hostname (FQDN) of the address.

Returns
The hostname of the address.

Definition at line 408 of file SocketAddress.cpp.

References m_name.

◆ getNativeForm()

const SocketAddress_t * BLOCXX_NAMESPACE::SocketAddress::getNativeForm ( ) const

◆ getNativeFormSize()

size_t BLOCXX_NAMESPACE::SocketAddress::getNativeFormSize ( ) const

Definition at line 418 of file SocketAddress.cpp.

References m_nativeSize.

Referenced by BLOCXX_NAMESPACE::SocketBaseImpl::connect().

◆ getPort()

UInt16 BLOCXX_NAMESPACE::SocketAddress::getPort ( ) const

Get the port associated with the address.

Returns
The port

Definition at line 373 of file SocketAddress.cpp.

References BLOCXX_ASSERT, INET, m_inetNativeAddress, m_type, and BLOCXX_NAMESPACE::ntoh16().

Referenced by toString().

◆ getType()

AddressType BLOCXX_NAMESPACE::SocketAddress::getType ( ) const
inline

Definition at line 66 of file SocketAddress.hpp.

References m_type.

Referenced by BLOCXX_NAMESPACE::SocketBaseImpl::connect().

◆ getUDS()

◆ getUnixAddress()

const UnixSocketAddress_t * BLOCXX_NAMESPACE::SocketAddress::getUnixAddress ( ) const

Get a pointer to the UnixSocketAddress_t precondition: getType() == UDS.

Definition at line 278 of file SocketAddress.cpp.

References m_UDSNativeAddress.

◆ toString()

const String BLOCXX_NAMESPACE::SocketAddress::toString ( ) const

Returns the IP address and the port with a colon in between.

Returns
The IP and port seperated by a colon.

Definition at line 446 of file SocketAddress.cpp.

References BLOCXX_ASSERT, getAddress(), getPort(), INET, m_name, m_type, and UNSET.

Referenced by BLOCXX_NAMESPACE::SocketBaseImpl::connect().

Member Data Documentation

◆ ALL_LOCAL_ADDRESSES

const char *const BLOCXX_NAMESPACE::SocketAddress::ALL_LOCAL_ADDRESSES = "0.0.0.0"
static

◆ m_address

String BLOCXX_NAMESPACE::SocketAddress::m_address
private

Definition at line 156 of file SocketAddress.hpp.

Referenced by assignFromNativeForm(), assignFromNativeForm(), getAddress(), and getUDS().

◆ m_inetNativeAddress

InetSocketAddress_t BLOCXX_NAMESPACE::SocketAddress::m_inetNativeAddress
private

Definition at line 159 of file SocketAddress.hpp.

Referenced by assignFromNativeForm(), getInetAddress(), getNativeForm(), and getPort().

◆ m_name

String BLOCXX_NAMESPACE::SocketAddress::m_name
private

◆ m_nativeSize

size_t BLOCXX_NAMESPACE::SocketAddress::m_nativeSize
private

◆ m_type

◆ m_UDSNativeAddress

UnixSocketAddress_t BLOCXX_NAMESPACE::SocketAddress::m_UDSNativeAddress
private

Definition at line 162 of file SocketAddress.hpp.

Referenced by assignFromNativeForm(), getNativeForm(), getUDS(), and getUnixAddress().


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