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 
) [static, private]
SocketAddress BLOCXX_NAMESPACE::SocketAddress::getFromNativeForm ( const InetSocketAddress_t nativeForm) [static, private]

Definition at line 219 of file SocketAddress.cpp.

References SocketAddress().

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getFromNativeForm ( const UnixSocketAddress_t nativeForm) [static, private]

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

Definition at line 156 of file SocketAddress.hpp.

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

Definition at line 159 of file SocketAddress.hpp.

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

Definition at line 157 of file SocketAddress.hpp.

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

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: