TAO  2.3.3
Public Member Functions | List of all members
TAO_Endpoint Class Referenceabstract

Defines the Endpoint interface in the Pluggable Protocol framework. More...

#include <Endpoint.h>

Inheritance diagram for TAO_Endpoint:
Inheritance graph
[legend]

Public Member Functions

 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...
 

TAO_Endpoint Template Methods

Abstract methods to be implemented by concrete subclasses.

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_
 
virtual CORBA::Boolean is_equivalent (const TAO_Endpoint *other_endpoint)=0
 
virtual TAO_Endpointnext (void)=0
 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)=0
 Return a string representation for the address. More...
 
virtual TAO_Endpointduplicate (void)=0
 
virtual CORBA::ULong hash (void)=0
 Return a hash value for this object. More...
 
 TAO_Endpoint (const TAO_Endpoint &)
 Endpoints should not be copied. More...
 
void operator= (const TAO_Endpoint &)
 Lock for the address lookup. More...
 

Detailed Description

Defines the Endpoint interface in the Pluggable Protocol framework.

Lightweight encapsulation of addressing information for a single acceptor endpoint. In other words, Endpoint represents a single point of contact for the server, and is the smallest unit of addressing information necessary for a client to connect to a server. A Profile contains one or more Endpoints, i.e., knows of one or more ways to contact server(s).

Constructor & Destructor Documentation

TAO_Endpoint::TAO_Endpoint ( CORBA::ULong  tag,
CORBA::Short  priority = TAO_INVALID_PRIORITY 
)

Constructor.

TAO_Endpoint::~TAO_Endpoint ( void  )
virtual

Destructor.

TAO_Endpoint::TAO_Endpoint ( const TAO_Endpoint )
private

Endpoints should not be copied.

Member Function Documentation

virtual int TAO_Endpoint::addr_to_string ( char *  buffer,
size_t  length 
)
pure 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.

Implemented in TAO_IIOP_Endpoint.

virtual TAO_Endpoint* TAO_Endpoint::duplicate ( void  )
pure virtual

This method returns a deep copy of the corresponding endpoints by allocating memory.

Implemented in TAO_IIOP_Endpoint.

virtual CORBA::ULong TAO_Endpoint::hash ( void  )
pure virtual

Return a hash value for this object.

Implemented in TAO_IIOP_Endpoint.

virtual CORBA::Boolean TAO_Endpoint::is_equivalent ( const TAO_Endpoint other_endpoint)
pure virtual
Returns
true if this endpoint is equivalent to other_endpoint.

Implemented in TAO_IIOP_Endpoint.

virtual TAO_Endpoint* TAO_Endpoint::next ( void  )
pure virtual

Endpoints can be linked in a list.

Returns
The next endpoint in the list, if any.

Implemented in TAO_IIOP_Endpoint.

TAO_Endpoint * TAO_Endpoint::next_filtered ( TAO_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 in TAO_IIOP_Endpoint.

void TAO_Endpoint::operator= ( const TAO_Endpoint )
private

Lock for the address lookup.

Todo:
This lock should be strategized so that we dont lock in single threaded configurations. It is not possible to do this now as most of the information is available in the ORB_Core which is not available here.
void TAO_Endpoint::priority ( CORBA::Short  priority)

priority_ attribute setter.

CORBA::Short TAO_Endpoint::priority ( void  ) const

priority_ attribute getter.

CORBA::ULong TAO_Endpoint::tag ( void  ) const

IOP protocol tag accessor.

Member Data Documentation

TAO_SYNCH_MUTEX TAO_Endpoint::addr_lookup_lock_
mutableprotected

Lock for the address lookup.

Todo:
This lock should be strategized so that we dont lock in single threaded configurations. It is not possible to do this now as most of the information is available in the ORB_Core which is not available here.
CORBA::ULong TAO_Endpoint::hash_val_
protected

Cache the hash value.

CORBA::Short TAO_Endpoint::priority_
protected

CORBA priority of the acceptor this Endpoint is representing. This is part of TAO 'prioritized endpoints' architecture, and is currently used for RTCORBA only.

CORBA::ULong const TAO_Endpoint::tag_
protected

IOP tag, identifying the protocol for which this endpoint contains addressing info.


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