The C++ framework for developing highly scalable, high performance servers on Windows platforms.

Addresses
[Socket Tools Library]

Collaboration diagram for Addresses:

Detailed Description

A quick look at the inheritance diagram for IAddress shows that there's more to modelling a socket address than might, at first, meet the eye. The concrete classes CAddressIPv4 and CAddressIPv6 are all that you're likely to use on a day to day basis but within a server or client you may come across instances of IAddress being passed around. The reason being that most of the code is completely address agnostic and the addresses reported to you from a server or client can handle any address format that is supported by Winsock. CAddress is a simple smart pointer around the actual class that does all of the work, CAddressImpl.

The writeable addresses are used inside the server and client code to allow instances of CAddressImpl to be updated (from the results of system calls) and then passed out to via an IAddress interface.


Classes

class  CAddress
 Essentially a smart pointer to a CAddressImpl instance. More...
class  CAddressImpl
 A reference counted wrapper around a SOCKADDR_STORAGE structure that knows how big the address that's stored is. More...
class  CAddressInfo::Iterator
 An iterator to addresses that are supported by the host. More...
class  CAddressIPv4
 An IPv4 address. More...
class  CAddressIPv6
 An IPv6 address. More...
class  CAddressRenderer
 An implementation of IRenderAddresses. More...
class  CAddressType
 A generic implementation of the IAddressType interface. Should be suitable for all types of addresses, just supply the appropriate values to the constructor. More...
class  CAddressTypeIPv4
 A implementation of the IAddressType interface for IPv4. More...
class  CAddressTypeIPv6
 A implementation of the IAddressType interface for IPv6. More...
class  CAddressWrapper
 A facade that allows a SOCADDR * to be accessed via the IAddress interface. More...
class  CFullAddress
 A class that uses hard coded assumptions to fabricate "full addresses" from a SOCADDR structure and and is somewhat fragile in the face of new address family support. Essentially we guess the protocol, which isn't that hard. More...
class  CFullAddressWrapper
 A facade that allows a SOCADDR * to be accessed via the IFullAddress interface. Note that this has to use some hard coded assumptions to fill in the missing bits that aren't contained in a SOCADDR structure and so will be somewhat fragile in the face of new address family support. More...
class  IAddress
 An interface that represents a Winsock address. This interface only deals with the data that's available from the underlying address; none of the 'meta-data' related to the address type is available; see IFullAddress for that stuff. More...
class  IAddressRef
 A reference counted IAddress. More...
class  IAddressType
 An interface that provides meta-data information about the type of a Winsock Address. More...
class  IFullAddress
 An interface that represents an IAddress which knows about its address type and that can create dynamically allocated copies of itself. More...
class  IIPAddress
 An interface that represents an IP address which knows about its port. More...
class  IRenderAddresses
 An interface to an object that can take an instance of IAddress and produce a readable textual representation of that address. So, for example, it could takean IPv4 address and render it in standard dotted IP format xxx.xxx.xxx.xxx, etc. More...
class  IWritableAddress
 An interface which represents an address that can be written to and updated. A typical way that this interface would be used is like this: getsockname(socket, address.GetStorage(), address.GetSize()). More...
class  IWritableAddressRef
 A reference counted IWritableAddress. More...

Typedefs

typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IAddressRef > 
CSmartAddress
 A smart pointer for an IAddressRef.
typedef
JetByteTools::Core::TReferenceCountedSmartPointer
< IWritableAddressRef > 
CSmartWritableAddress
 A smart pointer for an IWritableAddressRef.

Functions

class JETBYTE_REQUIRES_NETWORK_INITIALISATION (CAddressInfo)
 A class that provides addressing information for the specified host.
class JETBYTE_REQUIRES_NETWORK_INITIALISATION (CNameInfo)
 A class that provides name lookup and formatting for specified addresses.


Typedef Documentation

typedef JetByteTools::Core::TReferenceCountedSmartPointer<IAddressRef> CSmartAddress

A smart pointer for an IAddressRef.

typedef JetByteTools::Core::TReferenceCountedSmartPointer<IWritableAddressRef> CSmartWritableAddress

A smart pointer for an IWritableAddressRef.


Function Documentation

class JetByteTools::Socket::JETBYTE_REQUIRES_NETWORK_INITIALISATION ( CNameInfo   ) 

A class that provides name lookup and formatting for specified addresses.

Construct an object for the supplied address.

Construct an object for the supplied address with the specified flags. See here for details of the available flags.

Retrieves the host name associated with the address.

Retrieves the service name, or numeric port, associated with the address.

class JetByteTools::Socket::JETBYTE_REQUIRES_NETWORK_INITIALISATION ( CAddressInfo   ) 

A class that provides addressing information for the specified host.

Construct an object for this host.

Construct an object for the supplied host.

Construct an object for the supplied host and service or port.

Construct an object for the supplied host, filtering by address type.

An iterator to the first address that the host supports.

An iterator to one beyond the last address that the host supports. Use as with STL iterators to end check for the end of iteration.


Generated on Sun Sep 12 19:06:54 2021 for The Server Framework - v7.4 by doxygen 1.5.3