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=false)
 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 = false 
) [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.

References endpoint_.

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.

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

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

Referenced by TAO_IIOP_Connector::complete_connection().

00026 {
00027   // calling on a dynamically allocation descriptor is not allowed.
00028   if (this->release_)
00029     return false;
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 true;
00037       }
00038   return false;
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_.

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::duplicate(), endpoint(), TAO_Base_Transport_Property::hash(), TAO_Base_Transport_Property::is_equivalent(), and reset_endpoint().

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 Tue Feb 2 17:39:49 2010 for TAO by  doxygen 1.4.7