RT_Transport_Descriptor_Property.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file RT_Transport_Descriptor_Property.h
00005  *
00006  *  $Id: RT_Transport_Descriptor_Property.h 81429 2008-04-24 18:49:54Z johnnyw $
00007  *
00008  *  @author Pradeep Gore <pradeep@oomworks.com>
00009  */
00010 
00011 #ifndef TAO_RT_TRANSPORT_DESCRIPTOR_PROPERTY_H
00012 #define TAO_RT_TRANSPORT_DESCRIPTOR_PROPERTY_H
00013 
00014 #include /**/ "ace/pre.h"
00015 
00016 #include "tao/RTCORBA/rtcorba_export.h"
00017 
00018 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00019 # pragma once
00020 #endif /* ACE_LACKS_PRAGMA_ONCE */
00021 
00022 #include "tao/Basic_Types.h"
00023 
00024 #include "ace/Global_Macros.h"
00025 
00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00027 
00028 /**
00029  * @class TAO_RT_Transport_Descriptor_Property
00030  *
00031  * @brief Base RT Transport Descriptor Property that can be <insert> ed into the TAO_RT_Transport_Descriptor class.
00032  *
00033  */
00034 class TAO_RTCORBA_Export TAO_RT_Transport_Descriptor_Property
00035 {
00036   friend class TAO_RT_Transport_Descriptor;
00037 
00038 public:
00039   /// Constructor
00040   TAO_RT_Transport_Descriptor_Property (void);
00041 
00042   /// Destructor
00043   virtual ~TAO_RT_Transport_Descriptor_Property (void);
00044 
00045   virtual TAO_RT_Transport_Descriptor_Property *duplicate (void) = 0;
00046 
00047   virtual CORBA::Boolean is_equivalent (const TAO_RT_Transport_Descriptor_Property *other_prop) = 0;
00048 
00049 protected:
00050   /// Properties can be chanined using the <next_> pointer;
00051   TAO_RT_Transport_Descriptor_Property* next_;
00052 
00053 private:
00054   // = Disallow copying and assignment.
00055   TAO_RT_Transport_Descriptor_Property (const TAO_RT_Transport_Descriptor_Property &);
00056   TAO_RT_Transport_Descriptor_Property & operator= (const TAO_RT_Transport_Descriptor_Property &);
00057 };
00058 
00059 /**
00060  * @class TAO_RT_Transport_Descriptor_Private_Connection_Property
00061  *
00062  * @brief Descriptor Property for Private Connections.
00063  *
00064  * Holds info necessary to identify private connections and
00065  * store/look them up in the Transport Cache.  (For description
00066  * of private connections see RTCORBA::PrivateTransportPolicy.)
00067  *
00068  */
00069 class TAO_RTCORBA_Export TAO_RT_Transport_Descriptor_Private_Connection_Property
00070   : public TAO_RT_Transport_Descriptor_Property
00071 {
00072 public:
00073   /// Constructor
00074   TAO_RT_Transport_Descriptor_Private_Connection_Property (void);
00075   TAO_RT_Transport_Descriptor_Private_Connection_Property (long object_id);
00076 
00077   /// Destructor
00078   ~TAO_RT_Transport_Descriptor_Private_Connection_Property (void);
00079 
00080   /// Init
00081   void init (long object_id);
00082 
00083   virtual TAO_RT_Transport_Descriptor_Property *duplicate (void);
00084 
00085   virtual CORBA::Boolean is_equivalent (const TAO_RT_Transport_Descriptor_Property *other_prop);
00086 
00087 private:
00088   /**
00089    * Unique identifier of the object to which private connection
00090    * identified with this descriptor belongs.  The value of
00091    * @c object_id_ is the @c TAO_Stub* of the object.
00092    */
00093   long object_id_;
00094 
00095 };
00096 
00097 /*****************************************************************************/
00098 
00099 /**
00100  * @class TAO_RT_Transport_Descriptor_Banded_Connection_Property
00101  *
00102  * @brief Descriptor Property for Banded Connections.
00103  *
00104  * This property holds the Band information necessary to identify a banded connection.
00105  *
00106  */
00107 class TAO_RTCORBA_Export TAO_RT_Transport_Descriptor_Banded_Connection_Property
00108   : public TAO_RT_Transport_Descriptor_Property
00109 {
00110 public:
00111   /// Constructor
00112   TAO_RT_Transport_Descriptor_Banded_Connection_Property (void);
00113   TAO_RT_Transport_Descriptor_Banded_Connection_Property (CORBA::Short low_priority,
00114                                                           CORBA::Short high_priority);
00115 
00116   /// Destructor
00117   ~TAO_RT_Transport_Descriptor_Banded_Connection_Property (void);
00118 
00119   /// Init
00120   void init (CORBA::Short low_priority, CORBA::Short high_priority);
00121 
00122   virtual TAO_RT_Transport_Descriptor_Property *duplicate (void);
00123 
00124   virtual CORBA::Boolean is_equivalent (const TAO_RT_Transport_Descriptor_Property *other_prop);
00125 
00126 protected:
00127   /// The low priority of the Band.
00128   CORBA::Short low_priority_;
00129 
00130   /// The high priority of the Band.
00131   CORBA::Short high_priority_;
00132 };
00133 
00134 TAO_END_VERSIONED_NAMESPACE_DECL
00135 
00136 /*****************************************************************************/
00137 
00138 #if defined (__ACE_INLINE__)
00139 #include "tao/RTCORBA/RT_Transport_Descriptor_Property.inl"
00140 #endif /* __ACE_INLINE__ */
00141 
00142 #include /**/ "ace/post.h"
00143 
00144 #endif /* TAO_RT_TRANSPORT_DESCRIPTOR_PROPERTY_H */

Generated on Tue Feb 2 17:42:49 2010 for TAO_RTCORBA by  doxygen 1.4.7