TAO  2.3.3
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
TAO_IIOP_Endpoint Class Reference

TAO_IIOP_Endpoint. More...

#include <IIOP_Endpoint.h>

Inheritance diagram for TAO_IIOP_Endpoint:
Inheritance graph
[legend]
Collaboration diagram for TAO_IIOP_Endpoint:
Collaboration graph
[legend]

Public Member Functions

 TAO_IIOP_Endpoint (void)
 Default constructor. More...
 
 TAO_IIOP_Endpoint (const char *host, CORBA::UShort port, const ACE_INET_Addr &addr, CORBA::Short priority=TAO_INVALID_PRIORITY)
 
 TAO_IIOP_Endpoint (const ACE_INET_Addr &addr, int use_dotted_decimal_addresses)
 Constructor. More...
 
 TAO_IIOP_Endpoint (const char *host, CORBA::UShort port, CORBA::Short priority)
 Constructor. This constructor is used when decoding endpoints. More...
 
 ~TAO_IIOP_Endpoint (void)
 Destructor. More...
 
virtual TAO_Endpointnext (void)
 Endpoints can be linked in a list. More...
 
virtual TAO_Endpointnext_filtered (TAO_ORB_Core *, TAO_Endpoint *root)
 
virtual int addr_to_string (char *buffer, size_t length)
 Return a string representation for the address. More...
 
virtual TAO_Endpointduplicate (void)
 Makes a copy of this. More...
 
virtual CORBA::Boolean is_equivalent (const TAO_Endpoint *other_endpoint)
 
virtual CORBA::ULong hash (void)
 Return a hash value for this object. More...
 
const ACE_INET_Addrobject_addr (void) const
 Return a reference to the <object_addr>. More...
 
const char * host (void) const
 
const char * host (const char *h)
 
CORBA::UShort port (void) const
 Return the port number. More...
 
CORBA::UShort port (CORBA::UShort p)
 Set the port number. More...
 
bool is_preferred_network (void) const
 Do we have a preferred local network for the target? More...
 
const char * preferred_network (void) const
 Return the preferred network if any. More...
 
TAO_IIOP_Endpointoperator= (const TAO_IIOP_Endpoint &other)
 
- Public Member Functions inherited from TAO_Endpoint
 TAO_Endpoint (CORBA::ULong tag, CORBA::Short priority=TAO_INVALID_PRIORITY)
 Constructor. More...
 
virtual ~TAO_Endpoint (void)
 Destructor. More...
 
CORBA::ULong tag (void) const
 IOP protocol tag accessor. More...
 
void priority (CORBA::Short priority)
 priority_ attribute setter. More...
 
CORBA::Short priority (void) const
 priority_ attribute getter. More...
 

Static Public Member Functions

static void find_preferred_interfaces (const ACE_CString &host, const ACE_CString &csvPreferred, ACE_Vector< ACE_CString > &preferred)
 

Private Member Functions

TAO_IIOP_Endpointnext_filtered_i (TAO_IIOP_Endpoint *root, bool ipv6_only, bool prefer_ipv6, bool want_ipv6)
 
int set (const ACE_INET_Addr &addr, int use_dotted_decimal_addresses)
 Helper method for setting INET_Addr. More...
 
void object_addr_i (void) const
 Helper method for object_addr () call. More...
 
CORBA::ULong preferred_interfaces (const char *csvPreferred, bool enforce, TAO_IIOP_Profile &profile)
 
TAO_IIOP_Endpointadd_local_endpoint (TAO_IIOP_Endpoint *ep, const char *local, TAO_IIOP_Profile &profile)
 
 TAO_IIOP_Endpoint (const TAO_IIOP_Endpoint &)
 Canonical copy constructor. More...
 

Private Attributes

CORBA::String_var host_
 String representing the host name. More...
 
CORBA::UShort port_
 TCP port number. More...
 
bool is_encodable_
 Is this endpoint created encodable as part of the IOR? More...
 
bool object_addr_set_
 Flag to indicate if the address has been resolved and set. More...
 
ACE_INET_Addr object_addr_
 
TAO::IIOP_Endpoint_Info preferred_path_
 Preferred path for this endpoint. More...
 
TAO_IIOP_Endpointnext_
 

Friends

class TAO_IIOP_Profile
 
class TAO_SSLIOP_Profile
 

Additional Inherited Members

- Protected Attributes inherited from TAO_Endpoint
TAO_SYNCH_MUTEX addr_lookup_lock_
 Lock for the address lookup. More...
 
CORBA::ULong hash_val_
 Cache the hash value. More...
 
CORBA::ULong const tag_
 
CORBA::Short priority_
 

Detailed Description

TAO_IIOP_Endpoint.

IIOP-specific implementation of PP Framework Endpoint interface.

Constructor & Destructor Documentation

TAO_IIOP_Endpoint::TAO_IIOP_Endpoint ( void  )

Default constructor.

TAO_IIOP_Endpoint::TAO_IIOP_Endpoint ( const char *  host,
CORBA::UShort  port,
const ACE_INET_Addr addr,
CORBA::Short  priority = TAO_INVALID_PRIORITY 
)

Constructor. This is the most efficient constructor since it does not require any address resolution processing.

TAO_IIOP_Endpoint::TAO_IIOP_Endpoint ( const ACE_INET_Addr addr,
int  use_dotted_decimal_addresses 
)

Constructor.

TAO_IIOP_Endpoint::TAO_IIOP_Endpoint ( const char *  host,
CORBA::UShort  port,
CORBA::Short  priority 
)

Constructor. This constructor is used when decoding endpoints.

TAO_IIOP_Endpoint::~TAO_IIOP_Endpoint ( void  )

Destructor.

TAO_IIOP_Endpoint::TAO_IIOP_Endpoint ( const TAO_IIOP_Endpoint rhs)
private

Canonical copy constructor.

In private section to prevent clients from invoking this accidentally. Clients should only use duplicate () to make a deep copy

Member Function Documentation

TAO_IIOP_Endpoint * TAO_IIOP_Endpoint::add_local_endpoint ( TAO_IIOP_Endpoint ep,
const char *  local,
TAO_IIOP_Profile profile 
)
private

Chain a new duplicate of ourself with the specified local preferred interface.

int TAO_IIOP_Endpoint::addr_to_string ( char *  buffer,
size_t  length 
)
virtual

Return a string representation for the address.

The purpose of this method is to provide a general interface to the underlying address object's addr_to_string method. This allows the protocol implementor to select the appropriate string format.

Returns
-1 if buffer is too small.

Implements TAO_Endpoint.

TAO_Endpoint * TAO_IIOP_Endpoint::duplicate ( void  )
virtual

Makes a copy of this.

Implements TAO_Endpoint.

void TAO_IIOP_Endpoint::find_preferred_interfaces ( const ACE_CString host,
const ACE_CString csvPreferred,
ACE_Vector< ACE_CString > &  preferred 
)
static

Given a comma separated list of preferred interface directives, which are of the form <wild_remote>=<wild_local>, this function will retrieve the list of preferred local ip addresses by matching wild_local against the list of all local ip interfaces, for any directive where wild_remote matches the host from our endpoint.

CORBA::ULong TAO_IIOP_Endpoint::hash ( void  )
virtual

Return a hash value for this object.

Implements TAO_Endpoint.

const char* TAO_IIOP_Endpoint::host ( void  ) const

Return a pointer to the host string. This object maintains ownership of this string.

const char * TAO_IIOP_Endpoint::host ( const char *  h)

Copy the string h into <host_> and return the resulting pointer. This object maintains ownership of this string.

CORBA::Boolean TAO_IIOP_Endpoint::is_equivalent ( const TAO_Endpoint other_endpoint)
virtual

Return true if this endpoint is equivalent to other_endpoint. Two endpoints are equivalent if their port and host are the same.

Implements TAO_Endpoint.

bool TAO_IIOP_Endpoint::is_preferred_network ( void  ) const

Do we have a preferred local network for the target?

TAO_Endpoint * TAO_IIOP_Endpoint::next ( void  )
virtual

Endpoints can be linked in a list.

Returns
The next endpoint in the list, if any.

Implements TAO_Endpoint.

TAO_Endpoint * TAO_IIOP_Endpoint::next_filtered ( TAO_ORB_Core orb_core,
TAO_Endpoint root 
)
virtual

Return the next endpoint in the list, but use protocol-specific filtering to constrain the value. The orb core is needed to supply any sort of filter arguments, and the root endpoint is needed in case the algorithm needs to rewind. If the supplied root is 0, then this is assumed to be the candidate next endpoint.

To use this, the caller starts off the change with root == 0. This is a bit of a violation in logic, a more correct implementation would accept this == 0 and a non-null root. To do iteration using next_filtered, do: for (TAO_Endpoint *ep = root_endpoint->next_filtered (orb_core, 0); ep != 0; ep = ep->next_filtered(orb_core, root_endpoint)) { }

Reimplemented from TAO_Endpoint.

TAO_IIOP_Endpoint * TAO_IIOP_Endpoint::next_filtered_i ( TAO_IIOP_Endpoint root,
bool  ipv6_only,
bool  prefer_ipv6,
bool  want_ipv6 
)
private
const ACE_INET_Addr & TAO_IIOP_Endpoint::object_addr ( void  ) const

Return a reference to the <object_addr>.

void TAO_IIOP_Endpoint::object_addr_i ( void  ) const
private

Helper method for object_addr () call.

TAO_IIOP_Endpoint & TAO_IIOP_Endpoint::operator= ( const TAO_IIOP_Endpoint other)

Need to have an assignment operator since the IIOP_Profile class may have to reorder its list of endpoints based on filtering by the EndpointPolicy.

CORBA::UShort TAO_IIOP_Endpoint::port ( void  ) const

Return the port number.

CORBA::UShort TAO_IIOP_Endpoint::port ( CORBA::UShort  p)

Set the port number.

CORBA::ULong TAO_IIOP_Endpoint::preferred_interfaces ( const char *  csvPreferred,
bool  enforce,
TAO_IIOP_Profile profile 
)
private

Generate preferred interfaces from the options passed in by the user.

const char * TAO_IIOP_Endpoint::preferred_network ( void  ) const

Return the preferred network if any.

int TAO_IIOP_Endpoint::set ( const ACE_INET_Addr addr,
int  use_dotted_decimal_addresses 
)
private

Helper method for setting INET_Addr.

Friends And Related Function Documentation

friend class TAO_IIOP_Profile
friend
friend class TAO_SSLIOP_Profile
friend

Member Data Documentation

CORBA::String_var TAO_IIOP_Endpoint::host_
private

String representing the host name.

bool TAO_IIOP_Endpoint::is_encodable_
private

Is this endpoint created encodable as part of the IOR?

TAO_IIOP_Endpoint* TAO_IIOP_Endpoint::next_
private

IIOP Endpoints can be strung into a list. Return the next endpoint in the list, if any.

ACE_INET_Addr TAO_IIOP_Endpoint::object_addr_
mutableprivate

Cached instance of ACE_INET_Addr for use in making invocations, etc.

bool TAO_IIOP_Endpoint::object_addr_set_
mutableprivate

Flag to indicate if the address has been resolved and set.

CORBA::UShort TAO_IIOP_Endpoint::port_
private

TCP port number.

TAO::IIOP_Endpoint_Info TAO_IIOP_Endpoint::preferred_path_
private

Preferred path for this endpoint.


The documentation for this class was generated from the following files: