00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Priority_Mapping_Manager.h 00006 * 00007 * $Id: Priority_Mapping_Manager.h 81429 2008-04-24 18:49:54Z johnnyw $ 00008 * 00009 * @author Marina Spivak (marina@cs.wustl.edu) 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_PRIORITY_MAPPING_MANAGER_H 00015 #define TAO_PRIORITY_MAPPING_MANAGER_H 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/orbconf.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #if defined (TAO_HAS_CORBA_MESSAGING) && TAO_HAS_CORBA_MESSAGING != 0 00025 00026 #include "tao/RTCORBA/rtcorba_export.h" 00027 #include "tao/RTCORBA/Priority_Mapping.h" 00028 #include "tao/LocalObject.h" 00029 00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00031 00032 class TAO_Priority_Mapping_Manager; 00033 class TAO_Priority_Mapping_Manager_var; 00034 typedef TAO_Priority_Mapping_Manager *TAO_Priority_Mapping_Manager_ptr; 00035 00036 00037 /** 00038 * @class TAO_Priority_Mapping_Manager 00039 * 00040 * @brief Priority_Mapping_Manager pseudo-objref. 00041 * 00042 * Allows setting of user-defined Priority_Mapping at run-time. 00043 */ 00044 class TAO_RTCORBA_Export TAO_Priority_Mapping_Manager : 00045 public virtual ::CORBA::LocalObject 00046 { 00047 00048 public: 00049 /// Constructor. 00050 TAO_Priority_Mapping_Manager (RTCORBA::PriorityMapping * mapping); 00051 00052 /// 00053 void mapping (RTCORBA::PriorityMapping * mapping); 00054 00055 /// 00056 RTCORBA::PriorityMapping *mapping (void); 00057 00058 public: 00059 typedef TAO_Priority_Mapping_Manager_ptr _ptr_type; 00060 typedef TAO_Priority_Mapping_Manager_var _var_type; 00061 00062 // the static operations 00063 static TAO_Priority_Mapping_Manager_ptr _duplicate (TAO_Priority_Mapping_Manager_ptr obj); 00064 static TAO_Priority_Mapping_Manager_ptr _narrow (CORBA::Object_ptr obj); 00065 00066 static TAO_Priority_Mapping_Manager_ptr _nil (void) 00067 { 00068 return (TAO_Priority_Mapping_Manager_ptr)0; 00069 } 00070 00071 virtual const char* _interface_repository_id (void) const; 00072 00073 protected: 00074 00075 /// Protected destructor to enforce proper memory management of this 00076 /// reference counted object. 00077 ~TAO_Priority_Mapping_Manager (void); 00078 00079 private: 00080 00081 TAO_Priority_Mapping_Manager (const TAO_Priority_Mapping_Manager &); 00082 void operator= (const TAO_Priority_Mapping_Manager &); 00083 00084 private: 00085 00086 TAO_Priority_Mapping *mapping_; 00087 }; 00088 00089 class TAO_RTCORBA_Export TAO_Priority_Mapping_Manager_var 00090 : private TAO_Base_var 00091 { 00092 public: 00093 TAO_Priority_Mapping_Manager_var (void); // default constructor 00094 TAO_Priority_Mapping_Manager_var (TAO_Priority_Mapping_Manager_ptr); 00095 TAO_Priority_Mapping_Manager_var (const TAO_Priority_Mapping_Manager_var &); // copy constructor 00096 ~TAO_Priority_Mapping_Manager_var (void); // destructor 00097 00098 TAO_Priority_Mapping_Manager_var &operator= (TAO_Priority_Mapping_Manager_ptr); 00099 TAO_Priority_Mapping_Manager_var &operator= (const TAO_Priority_Mapping_Manager_var &); 00100 TAO_Priority_Mapping_Manager_ptr operator-> (void) const; 00101 00102 /// in, inout, out, _retn 00103 operator const TAO_Priority_Mapping_Manager_ptr &() const; 00104 operator TAO_Priority_Mapping_Manager_ptr &(); 00105 TAO_Priority_Mapping_Manager_ptr in (void) const; 00106 TAO_Priority_Mapping_Manager_ptr &inout (void); 00107 TAO_Priority_Mapping_Manager_ptr &out (void); 00108 TAO_Priority_Mapping_Manager_ptr _retn (void); 00109 TAO_Priority_Mapping_Manager_ptr ptr (void) const; 00110 00111 // Hooks used by template sequence and object manager classes 00112 // for non-defined forward declared interfaces. 00113 static TAO_Priority_Mapping_Manager_ptr duplicate (TAO_Priority_Mapping_Manager_ptr); 00114 static void release (TAO_Priority_Mapping_Manager_ptr); 00115 static TAO_Priority_Mapping_Manager_ptr nil (void); 00116 static TAO_Priority_Mapping_Manager_ptr narrow (CORBA::Object * ); 00117 static CORBA::Object * upcast (void *); 00118 00119 private: 00120 /// Unimplemented - prevents widening assignment. 00121 TAO_Priority_Mapping_Manager_ptr ptr_; 00122 TAO_Priority_Mapping_Manager_var (const TAO_Base_var &rhs); 00123 TAO_Priority_Mapping_Manager_var &operator= (const TAO_Base_var &rhs); 00124 }; 00125 00126 class TAO_RTCORBA_Export TAO_Priority_Mapping_Manager_out 00127 { 00128 public: 00129 TAO_Priority_Mapping_Manager_out (TAO_Priority_Mapping_Manager_ptr &); 00130 TAO_Priority_Mapping_Manager_out (TAO_Priority_Mapping_Manager_var &); 00131 TAO_Priority_Mapping_Manager_out (const TAO_Priority_Mapping_Manager_out &); 00132 TAO_Priority_Mapping_Manager_out &operator= (const TAO_Priority_Mapping_Manager_out &); 00133 TAO_Priority_Mapping_Manager_out &operator= (const TAO_Priority_Mapping_Manager_var &); 00134 TAO_Priority_Mapping_Manager_out &operator= (TAO_Priority_Mapping_Manager_ptr); 00135 operator TAO_Priority_Mapping_Manager_ptr &(); 00136 TAO_Priority_Mapping_Manager_ptr &ptr (void); 00137 TAO_Priority_Mapping_Manager_ptr operator-> (void); 00138 00139 private: 00140 TAO_Priority_Mapping_Manager_ptr &ptr_; 00141 }; 00142 00143 TAO_END_VERSIONED_NAMESPACE_DECL 00144 00145 #if defined (__ACE_INLINE__) 00146 #include "tao/RTCORBA/Priority_Mapping_Manager.inl" 00147 #endif /* __ACE_INLINE__ */ 00148 00149 #endif /* TAO_HAS_CORBA_MESSAGING && TAO_HAS_CORBA_MESSAGING != 0 */ 00150 00151 #include /**/ "ace/post.h" 00152 #endif /* TAO_PRIORITY_MAPPING_MANAGER_H */