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)
 Get an SocketAddress appropriate for referring to the local host.
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 54 of file SocketAddress.hpp.


Member Enumeration Documentation

enum BLOCXX_NAMESPACE::SocketAddress::AddressType
 

Enumerator:
UNSET 
INET 
UDS 

Definition at line 59 of file SocketAddress.hpp.


Constructor & Destructor Documentation

BLOCXX_NAMESPACE::SocketAddress::~SocketAddress  )  [inline]
 

Definition at line 102 of file SocketAddress.hpp.

BLOCXX_NAMESPACE::SocketAddress::SocketAddress  ) 
 

Definition at line 108 of file SocketAddress.cpp.

Referenced by allocEmptyAddress(), and getFromNativeForm().

BLOCXX_NAMESPACE::SocketAddress::SocketAddress const InetSocketAddress_t nativeForm  )  [private]
 

Definition at line 325 of file SocketAddress.cpp.

References assignFromNativeForm().

BLOCXX_NAMESPACE::SocketAddress::SocketAddress const UnixSocketAddress_t nativeForm  )  [private]
 

Definition at line 317 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 346 of file SocketAddress.cpp.

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

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

void BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm const InetSocketAddress_t address,
size_t  len
 

Definition at line 286 of file SocketAddress.cpp.

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

void BLOCXX_NAMESPACE::SocketAddress::assignFromNativeForm const UnixSocketAddress_t address,
size_t  len
 

Definition at line 297 of file SocketAddress.cpp.

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

Referenced by BLOCXX_NAMESPACE::ServerSocketImpl::fillAddrParms(), BLOCXX_NAMESPACE::SocketBaseImpl::fillInetAddrParms(), BLOCXX_NAMESPACE::SocketBaseImpl::fillUnixAddrParms(), and SocketAddress().

const String BLOCXX_NAMESPACE::SocketAddress::getAddress  )  const
 

Returns the IP address of the host.

Returns:
The IP address of the host

Definition at line 336 of file SocketAddress.cpp.

References m_address.

Referenced by toString().

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getAnyLocalHost UInt16  port = 0  )  [static]
 

Get an SocketAddress appropriate for referring to the local host.

Parameters:
port The port
Returns:
An SocketAddress representing the local machine

Definition at line 234 of file SocketAddress.cpp.

References BLOCXX_GETHOSTBYNAME_R_ARGUMENTS, BLOCXX_HAVE_GETHOSTBYNAME_R, getFromNativeForm(), BLOCXX_NAMESPACE::hton32(), BLOCXX_NAMESPACE::String::indexOf(), 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:
host The hostname
port The port
Returns:
An SocketAddress for the host and port
Exceptions:
UnknownHostException 

Definition at line 120 of file SocketAddress.cpp.

References BLOCXX_NAMESPACE::String::c_str().

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

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

Definition at line 176 of file SocketAddress.cpp.

References SocketAddress().

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

Definition at line 167 of file SocketAddress.cpp.

References SocketAddress().

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getFromNativeForm const InetAddress_t nativeForm,
UInt16  nativePort,
const String hostname
[static, private]
 

Definition at line 185 of file SocketAddress.cpp.

References BLOCXX_NAMESPACE::hton16(), INET, m_name, m_type, and SocketAddress().

Referenced by allocEmptyAddress(), and getAnyLocalHost().

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

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

Definition at line 217 of file SocketAddress.cpp.

References m_inetNativeAddress.

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

const String BLOCXX_NAMESPACE::SocketAddress::getName  )  const
 

Returns the hostname (FQDN) of the address.

Returns:
The hostname of the address.

Definition at line 331 of file SocketAddress.cpp.

References m_name.

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

Definition at line 199 of file SocketAddress.cpp.

References INET, m_inetNativeAddress, m_type, m_UDSNativeAddress, and UDS.

size_t BLOCXX_NAMESPACE::SocketAddress::getNativeFormSize  )  const
 

Definition at line 341 of file SocketAddress.cpp.

References m_nativeSize.

UInt16 BLOCXX_NAMESPACE::SocketAddress::getPort  )  const
 

Get the port associated with the address.

Returns:
The port

Definition at line 309 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]
 

Definition at line 65 of file SocketAddress.hpp.

Referenced by BLOCXX_NAMESPACE::ServerSocketImpl::accept(), BLOCXX_NAMESPACE::ServerSocketImpl::close(), BLOCXX_NAMESPACE::SocketBaseImpl::connect(), and BLOCXX_NAMESPACE::ServerSocketImpl::fillAddrParms().

SocketAddress BLOCXX_NAMESPACE::SocketAddress::getUDS const String filename  )  [static]
 

Definition at line 72 of file SocketAddress.cpp.

References BLOCXX_NAMESPACE::String::c_str(), BLOCXX_NAMESPACE::String::length(), m_address, m_name, m_nativeSize, m_type, m_UDSNativeAddress, and UDS.

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

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

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

Definition at line 226 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 369 of file SocketAddress.cpp.

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

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


Member Data Documentation

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

Definition at line 57 of file SocketAddress.hpp.

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

String BLOCXX_NAMESPACE::SocketAddress::m_address [private]
 

Definition at line 155 of file SocketAddress.hpp.

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

InetSocketAddress_t BLOCXX_NAMESPACE::SocketAddress::m_inetNativeAddress [private]
 

Definition at line 158 of file SocketAddress.hpp.

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

String BLOCXX_NAMESPACE::SocketAddress::m_name [private]
 

Definition at line 154 of file SocketAddress.hpp.

Referenced by assignFromNativeForm(), getFromNativeForm(), getName(), getUDS(), and toString().

size_t BLOCXX_NAMESPACE::SocketAddress::m_nativeSize [private]
 

Definition at line 156 of file SocketAddress.hpp.

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

AddressType BLOCXX_NAMESPACE::SocketAddress::m_type [private]
 

Definition at line 164 of file SocketAddress.hpp.

Referenced by assignFromNativeForm(), getFromNativeForm(), getNativeForm(), getPort(), getUDS(), and toString().

UnixSocketAddress_t BLOCXX_NAMESPACE::SocketAddress::m_UDSNativeAddress [private]
 

Definition at line 161 of file SocketAddress.hpp.

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


The documentation for this class was generated from the following files:
Generated on Fri Jun 16 15:39:11 2006 for blocxx by  doxygen 1.4.6