TAO_Transport_Descriptor_Interface Class Reference

An abstract base class for Transport Property. More...

#include <Transport_Descriptor_Interface.h>

Inheritance diagram for TAO_Transport_Descriptor_Interface:

Inheritance graph
[legend]
Collaboration diagram for TAO_Transport_Descriptor_Interface:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ~TAO_Transport_Descriptor_Interface (void)
 Destructor.

virtual TAO_Transport_Descriptor_Interfaceduplicate (void)=0
virtual CORBA::Boolean is_equivalent (const TAO_Transport_Descriptor_Interface *other_prop)=0
 Try to determine if this object is same as the other_prop.

virtual u_long hash (void) const=0
 Generate hash value for our class.

TAO_Endpointendpoint (void)
 Return the underlying endpoint object.

CORBA::Boolean reset_endpoint (TAO_Endpoint *ep)
void set_bidir_flag (CORBA::Boolean flag)
 Set the BiDir flag.


Protected Member Functions

 TAO_Transport_Descriptor_Interface (void)
 Default Constructor.

 TAO_Transport_Descriptor_Interface (TAO_Endpoint *endpoint, CORBA::Boolean take_ownership=0)
 Constructor.


Protected Attributes

TAO_Endpointendpoint_
 The base property of the connection ie. the peer's endpoint.

CORBA::Boolean bidir_flag_
 Should the endpoint be used in either direction?

CORBA::Boolean release_

Detailed Description

An abstract base class for Transport Property.

This class provides an abstract interface and holds minimal info on which the Transport Caching scheme is based on. Concrete connection properties can be got by inheriting from this class and implementing the virtual functions. Note 1: Additional properties for connection like Qos, Priority that the RT folks would need, can be added by inheriting from this class and providing the following methods. 1. duplicate () 2. is_equivalent () 3. hash ()

Definition at line 47 of file Transport_Descriptor_Interface.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Transport_Descriptor_Interface::~TAO_Transport_Descriptor_Interface void   )  [virtual]
 

Destructor.

Definition at line 16 of file Transport_Descriptor_Interface.cpp.

00017 {
00018   if (this->release_)
00019     {
00020       delete this->endpoint_;
00021     }
00022 }

ACE_INLINE TAO_Transport_Descriptor_Interface::TAO_Transport_Descriptor_Interface void   )  [protected]
 

Default Constructor.

Definition at line 18 of file Transport_Descriptor_Interface.inl.

00019   : endpoint_ (0),
00020     bidir_flag_ (false),
00021     release_ (false)
00022 {
00023 }

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO_Transport_Descriptor_Interface::TAO_Transport_Descriptor_Interface TAO_Endpoint endpoint,
CORBA::Boolean  take_ownership = 0
[protected]
 

Constructor.

Definition at line 8 of file Transport_Descriptor_Interface.inl.

00011   : endpoint_ (endpoint),
00012     bidir_flag_ (false),
00013     release_ (take_ownership)
00014 {
00015 }


Member Function Documentation

virtual TAO_Transport_Descriptor_Interface* TAO_Transport_Descriptor_Interface::duplicate void   )  [pure virtual]
 

This call allocates and copies the contents of this class and returns the pointer

Implemented in TAO_Base_Transport_Property.

Referenced by TAO::Cache_ExtId::duplicate(), and TAO::Cache_ExtId::operator=().

ACE_INLINE TAO_Endpoint * TAO_Transport_Descriptor_Interface::endpoint void   ) 
 

Return the underlying endpoint object.

Definition at line 27 of file Transport_Descriptor_Interface.inl.

Referenced by TAO_Connector::connect(), TAO_IIOP_Connector::make_connection(), TAO_IIOP_Connector::make_parallel_connection(), TAO_Connector::parallel_connect(), and TAO::Profile_Transport_Resolver::try_connect_i().

00028 {
00029   return this->endpoint_;
00030 }

virtual u_long TAO_Transport_Descriptor_Interface::hash void   )  const [pure virtual]
 

Generate hash value for our class.

Implemented in TAO_Base_Transport_Property.

Referenced by TAO::Cache_ExtId::hash().

virtual CORBA::Boolean TAO_Transport_Descriptor_Interface::is_equivalent const TAO_Transport_Descriptor_Interface other_prop  )  [pure virtual]
 

Try to determine if this object is same as the other_prop.

Implemented in TAO_Base_Transport_Property.

Referenced by TAO::Transport_Cache_Manager::is_wakeup_useful(), TAO::Cache_ExtId::operator!=(), and TAO::Cache_ExtId::operator==().

CORBA::Boolean TAO_Transport_Descriptor_Interface::reset_endpoint TAO_Endpoint ep  ) 
 

Reset the endpoint pointer to point to another, if that one is part of the chain based by the current endpoint. Although this method is public it should only be used by the protocol specific connector, right before caching, and only when a parallel connect was attempted with more than one possible endpoints.

Definition at line 25 of file Transport_Descriptor_Interface.cpp.

References TAO_Endpoint::next().

Referenced by TAO_IIOP_Connector::complete_connection().

00026 {
00027   // calling on a dynamically allocation descriptor is not allowed.
00028   if (this->release_)
00029     return 0;
00030 
00031   for (TAO_Endpoint *ptr = this->endpoint_; ptr != 0; ptr = ptr->next())
00032 
00033     if (ptr == ep)
00034       {
00035         this->endpoint_ = ep;
00036         return 1;
00037       }
00038   return 0;
00039 }

ACE_INLINE void TAO_Transport_Descriptor_Interface::set_bidir_flag CORBA::Boolean  flag  ) 
 

Set the BiDir flag.

Definition at line 34 of file Transport_Descriptor_Interface.inl.

References bidir_flag_.

Referenced by TAO_IIOP_Connection_Handler::process_listen_point_list().

00035 {
00036   this->bidir_flag_ = flag;
00037 }


Member Data Documentation

CORBA::Boolean TAO_Transport_Descriptor_Interface::bidir_flag_ [protected]
 

Should the endpoint be used in either direction?

Definition at line 89 of file Transport_Descriptor_Interface.h.

Referenced by set_bidir_flag().

TAO_Endpoint* TAO_Transport_Descriptor_Interface::endpoint_ [protected]
 

The base property of the connection ie. the peer's endpoint.

Definition at line 86 of file Transport_Descriptor_Interface.h.

Referenced by TAO_Base_Transport_Property::is_equivalent().

CORBA::Boolean TAO_Transport_Descriptor_Interface::release_ [protected]
 

Is the endpoint allocated on the heap? If so, we will have to delete it when we destruct ourselves.

Definition at line 93 of file Transport_Descriptor_Interface.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 12:24:07 2006 for TAO by doxygen 1.3.6