00001 // -*- C++ -*- 00002 00003 /** 00004 * @file RT_Transport_Descriptor.h 00005 * 00006 * $Id: RT_Transport_Descriptor.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_H 00012 #define TAO_RT_TRANSPORT_DESCRIPTOR_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/RTCORBA/RT_Transport_Descriptor_Property.h" 00023 00024 #include "tao/Transport_Descriptor_Interface.h" 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 /** 00029 * @class TAO_RT_Transport_Descriptor 00030 * 00031 * @brief Transport Descriptor for RTCORBA. 00032 * 00033 * The TAO_RT_Transport_Descriptor contains Descriptor Properties. 00034 * It uses the "Chain of Command" pattern in the implementation of the <_is_equivalent> method. 00035 * 00036 */ 00037 class TAO_RTCORBA_Export TAO_RT_Transport_Descriptor 00038 : public TAO_Transport_Descriptor_Interface 00039 { 00040 public: 00041 /// Constructor 00042 TAO_RT_Transport_Descriptor (TAO_Endpoint *endpoint, 00043 CORBA::Boolean flag = false); 00044 00045 /// Destructor 00046 ~TAO_RT_Transport_Descriptor (); 00047 00048 /// Insert Properties. 00049 void insert (TAO_RT_Transport_Descriptor_Property *descriptor_property); 00050 00051 /// = TAO_Transport_Descriptor_Interface methods 00052 00053 /// This call allocates and copies the contents of this class and 00054 /// returns the pointer 00055 virtual TAO_Transport_Descriptor_Interface *duplicate (void); 00056 00057 /// Try to determine if this object is same as the <other_prop>. 00058 virtual CORBA::Boolean is_equivalent ( 00059 const TAO_Transport_Descriptor_Interface *other_prop); 00060 00061 /// Generate hash value for our class 00062 virtual u_long hash (void) const; 00063 00064 private: 00065 /// Stack of properties. 00066 TAO_RT_Transport_Descriptor_Property *property_list_; 00067 00068 /// Flag to delete properties. 00069 int delete_properties_; 00070 }; 00071 00072 TAO_END_VERSIONED_NAMESPACE_DECL 00073 00074 #if defined (__ACE_INLINE__) 00075 #include "tao/RTCORBA/RT_Transport_Descriptor.inl" 00076 #endif /* __ACE_INLINE__ */ 00077 00078 #include /**/ "ace/post.h" 00079 00080 #endif /* TAO_RT_TRANSPORT_DESCRIPTOR_H */