Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

ACE_Multihomed_INET_Addr Class Reference

Extends ACE_INET_Addr with support for multi-homed addresses. More...

#include <Multihomed_INET_Addr.h>

Inheritance diagram for ACE_Multihomed_INET_Addr:

Inheritance graph
[legend]
Collaboration diagram for ACE_Multihomed_INET_Addr:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_Multihomed_INET_Addr (void)
 Default constructor.

 ACE_Multihomed_INET_Addr (u_short port_number, const char primary_host_name[], int encode=1, int address_family=AF_UNSPEC, const char *(secondary_host_names[])=0, size_t size=0)
 ACE_Multihomed_INET_Addr (u_short port_number, ACE_UINT32 primary_ip_addr=INADDR_ANY, int encode=1, const ACE_UINT32 *secondary_ip_addrs=0, size_t size=0)
 ~ACE_Multihomed_INET_Addr (void)
 Use compiler-generated copy constructor. Use compiler-generated assignment operator. Default dtor.

int set (u_short port_number, const char primary_host_name[], int encode=1, int address_family=AF_UNSPEC, const char *(secondary_host_names[])=0, size_t size=0)
int set (u_short port_number, ACE_UINT32 primary_ip_addr=INADDR_ANY, int encode=1, const ACE_UINT32 *secondary_ip_addrs=0, size_t size=0)
void set_port_number (u_short, int encode=1)
size_t get_num_secondary_addresses () const
int get_secondary_addresses (ACE_INET_Addr *secondary_addrs, size_t size) const
void get_addresses (sockaddr_in *addrs, size_t size) const

Private Attributes

ACE_Array< ACE_INET_Addrsecondaries_

Detailed Description

Extends ACE_INET_Addr with support for multi-homed addresses.


Constructor & Destructor Documentation

ACE_Multihomed_INET_Addr::ACE_Multihomed_INET_Addr void   
 

Default constructor.

ACE_Multihomed_INET_Addr::ACE_Multihomed_INET_Addr u_short    port_number,
const char    primary_host_name[],
int    encode = 1,
int    address_family = AF_UNSPEC,
const char *   (secondary_host_names[]) = 0,
size_t    size = 0
 

Constructs an <ACE_Multihomed_INET_Addr> from a <port_number>, a <primary_host_name>, and an array of <secondary_host_names>. <size> is taken to be the length of the array. If <encode> is non-zero, then <port_number> is converted into network byte order; otherwise it is assumed to be in network byte order already and is passed straight through. <address_family> can be used to select IPv4/IPv6 if the OS has IPv6 capability (ACE_HAS_IPV6 is defined). To specify IPv6, use the value AF_INET6. To specify IPv4, use AF_INET.

ACE_Multihomed_INET_Addr::ACE_Multihomed_INET_Addr u_short    port_number,
ACE_UINT32    primary_ip_addr = INADDR_ANY,
int    encode = 1,
const ACE_UINT32 *    secondary_ip_addrs = 0,
size_t    size = 0
 

Constructs an <ACE_Multihomed_INET_Addr> from a port_number, a primary_ip_addr, and an array of secondary_ip_addrs. size is taken to be the length of the array. If encode is non-zero, then the port number and the IP addresses are converted into network byte order; otherwise they are assumed to be in network byte order already and are passed straight through.

ACE_Multihomed_INET_Addr::~ACE_Multihomed_INET_Addr void   
 

Use compiler-generated copy constructor. Use compiler-generated assignment operator. Default dtor.


Member Function Documentation

void ACE_Multihomed_INET_Addr::get_addresses sockaddr_in *    addrs,
size_t    size
const
 

Initialize user-supplied array <addrs> with the the current primary and secondary addresses. <size> is taken as the size of this array.

ACE_INLINE size_t ACE_Multihomed_INET_Addr::get_num_secondary_addresses  
 

Returns the number of secondary addresses.

int ACE_Multihomed_INET_Addr::get_secondary_addresses ACE_INET_Addr   secondary_addrs,
size_t    size
const
 

Initialize user-supplied array <secondary_addrs> with the current secondary addresses. <size> is taken as the size of this array.

int ACE_Multihomed_INET_Addr::set u_short    port_number,
ACE_UINT32    primary_ip_addr = INADDR_ANY,
int    encode = 1,
const ACE_UINT32 *    secondary_ip_addrs = 0,
size_t    size = 0
 

Initializes an <ACE_Multihomed_INET_Addr> from a port_number, a primary_ip_addr, and an array of secondary_ip_addrs. size is taken to be the length of the array. If encode is non-zero, then the port number and the IP addresses are converted into network byte order; otherwise they are assumed to be in network byte order already and are passed straight through.

int ACE_Multihomed_INET_Addr::set u_short    port_number,
const char    primary_host_name[],
int    encode = 1,
int    address_family = AF_UNSPEC,
const char *   (secondary_host_names[]) = 0,
size_t    size = 0
 

Initializes an <ACE_Multihomed_INET_Addr> from a <port_number>, a <primary_host_name>, and an array of <secondary_host_names>. <size> is taken to be the length of the array. If <encode> is non-zero, then <port_number> is converted into network byte order; otherwise it is assumed to be in network byte order already and is passed straight through. <address_family> can be used to select IPv4/IPv6 if the OS has IPv6 capability (ACE_HAS_IPV6 is defined). To specify IPv6, use the value AF_INET6. To specify IPv4, use AF_INET.

void ACE_Multihomed_INET_Addr::set_port_number u_short   ,
int    encode = 1
 

Sets the port number without affecting the host name. The port numbers of the primary address, and of any and all secondary addresses, are affected. If <encode> is enabled, then <port_number> is converted into network byte order, otherwise it is assumed to be in network byte order already and is passed straight through.

Reimplemented from ACE_INET_Addr.


Member Data Documentation

ACE_Array<ACE_INET_Addr> ACE_Multihomed_INET_Addr::secondaries_ [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Jan 14 22:45:11 2004 for ACE by doxygen1.2.18