blocxx
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes
BLOCXX_NAMESPACE::SocketAddress Class Reference

#include <SocketAddress.hpp>

List of all members.

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

Enumerator:
UNSET 
INET 
UDS 

Definition at line 60 of file SocketAddress.hpp.


Constructor & Destructor Documentation

BLOCXX_NAMESPACE::SocketAddress::~SocketAddress ( )
inline

Definition at line 103 of file SocketAddress.hpp.

BLOCXX_NAMESPACE::SocketAddress::SocketAddress ( )

Definition at line 142 of file SocketAddress.cpp.

Referenced by allocEmptyAddress(), getByName(), and getFromNativeForm().

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

Definition at line 401 of file SocketAddress.cpp.

References assignFromNativeForm().

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

Definition at line 393 of file SocketAddress.cpp.

References assignFromNativeForm().


Member Function Documentation

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().

void BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm ( const UnixSocketAddress_t address,
size_t  len 
)
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.

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().

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, and BLOCXX_NAMESPACE::String::npos.

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().

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

Definition at line 219 of file SocketAddress.cpp.

References SocketAddress().

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

Definition at line 228 of file SocketAddress.cpp.

References SocketAddress().

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().

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.

const SocketAddress_t * BLOCXX_NAMESPACE::SocketAddress::getNativeForm ( ) const
size_t BLOCXX_NAMESPACE::SocketAddress::getNativeFormSize ( ) const
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().

AddressType BLOCXX_NAMESPACE::SocketAddress::getType ( ) const
inline
SocketAddress BLOCXX_NAMESPACE::SocketAddress::getUDS ( const String filename)
static
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.

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::ServerSocketImpl::close(), and BLOCXX_NAMESPACE::SocketBaseImpl::connect().


Member Data Documentation

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

Definition at line 58 of file SocketAddress.hpp.

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

String BLOCXX_NAMESPACE::SocketAddress::m_address
private

Definition at line 156 of file SocketAddress.hpp.

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

InetSocketAddress_t BLOCXX_NAMESPACE::SocketAddress::m_inetNativeAddress
private

Definition at line 159 of file SocketAddress.hpp.

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

String BLOCXX_NAMESPACE::SocketAddress::m_name
private
size_t BLOCXX_NAMESPACE::SocketAddress::m_nativeSize
private

Definition at line 157 of file SocketAddress.hpp.

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

AddressType BLOCXX_NAMESPACE::SocketAddress::m_type
private
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: