blocxx
|
#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_t * | getNativeForm () const |
size_t | getNativeFormSize () const |
const InetSocketAddress_t * | getInetAddress () const |
Get a pointer to the InetSocketAddress_t precondition: getType() == INET. | |
const UnixSocketAddress_t * | getUnixAddress () 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 |
Definition at line 55 of file SocketAddress.hpp.
Definition at line 60 of file SocketAddress.hpp.
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().
SocketAddress BLOCXX_NAMESPACE::SocketAddress::allocEmptyAddress | ( | AddressType | type | ) | [static] |
Allocate an empty SocketAddress.
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 | ||
) |
Definition at line 361 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().
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.
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.
host | The hostname |
port | The port |
port | The port |
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.
host | The hostname |
port | The port |
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] |
Definition at line 237 of file SocketAddress.cpp.
References BLOCXX_NAMESPACE::hton16(), INET, m_name, m_type, and SocketAddress().
Referenced by allocEmptyAddress(), getAnyLocalHost(), and getByName().
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.
Definition at line 408 of file SocketAddress.cpp.
References m_name.
const SocketAddress_t * BLOCXX_NAMESPACE::SocketAddress::getNativeForm | ( | ) | const |
Definition at line 251 of file SocketAddress.cpp.
References INET, m_inetNativeAddress, m_type, m_UDSNativeAddress, and UDS.
Referenced by BLOCXX_NAMESPACE::SocketBaseImpl::connect(), and BLOCXX_NAMESPACE::ServerSocketImpl::doListenUDS().
size_t BLOCXX_NAMESPACE::SocketAddress::getNativeFormSize | ( | ) | const |
Definition at line 418 of file SocketAddress.cpp.
References m_nativeSize.
Referenced by BLOCXX_NAMESPACE::SocketBaseImpl::connect(), and BLOCXX_NAMESPACE::ServerSocketImpl::doListenUDS().
UInt16 BLOCXX_NAMESPACE::SocketAddress::getPort | ( | ) | const |
Get the port associated with the address.
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] |
Definition at line 66 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 102 of file SocketAddress.cpp.
References BLOCXX_THROW, 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::doListenUDS().
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.
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().
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 155 of file SocketAddress.hpp.
Referenced by assignFromNativeForm(), getAnyLocalHost(), getByName(), getFromNativeForm(), getName(), getUDS(), and toString().
size_t BLOCXX_NAMESPACE::SocketAddress::m_nativeSize [private] |
Definition at line 157 of file SocketAddress.hpp.
Referenced by assignFromNativeForm(), getNativeFormSize(), and getUDS().
Definition at line 165 of file SocketAddress.hpp.
Referenced by assignFromNativeForm(), getByName(), getFromNativeForm(), getNativeForm(), getPort(), getUDS(), and toString().
Definition at line 162 of file SocketAddress.hpp.
Referenced by assignFromNativeForm(), getNativeForm(), getUDS(), and getUnixAddress().