00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef _TAO_IDL_POLICYFACTORYC_H_
00032 #define _TAO_IDL_POLICYFACTORYC_H_
00033
00034 #include "ace/pre.h"
00035
00036
00037 #include "ace/config-all.h"
00038
00039 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00040 # pragma once
00041 #endif
00042
00043 #include "tao/PI/pi_export.h"
00044 #include "tao/ORB.h"
00045 #include "tao/SystemException.h"
00046 #include "tao/Environment.h"
00047 #include "tao/Object.h"
00048 #include "tao/AnyTypeCode/TypeCode.h"
00049 #include "tao/AnyTypeCode/TypeCode_Constants.h"
00050 #include "tao/AnyTypeCode/Any.h"
00051 #include "tao/Objref_VarOut_T.h"
00052
00053 #include "tao/PolicyC.h"
00054
00055 #if defined (TAO_EXPORT_MACRO)
00056 #undef TAO_EXPORT_MACRO
00057 #endif
00058 #define TAO_EXPORT_MACRO TAO_PI_Export
00059
00060
00061
00062
00063 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00064
00065 namespace PortableInterceptor
00066 {
00067
00068
00069
00070
00071 #if !defined (_PORTABLEINTERCEPTOR_POLICYFACTORY__VAR_OUT_CH_)
00072 #define _PORTABLEINTERCEPTOR_POLICYFACTORY__VAR_OUT_CH_
00073
00074 class PolicyFactory;
00075 typedef PolicyFactory *PolicyFactory_ptr;
00076
00077 typedef
00078 TAO_Objref_Var_T<
00079 PolicyFactory
00080 >
00081 PolicyFactory_var;
00082
00083 typedef
00084 TAO_Objref_Out_T<
00085 PolicyFactory
00086 >
00087 PolicyFactory_out;
00088
00089 #endif
00090
00091
00092
00093
00094 #if !defined (_PORTABLEINTERCEPTOR_POLICYFACTORY_CH_)
00095 #define _PORTABLEINTERCEPTOR_POLICYFACTORY_CH_
00096
00097 class TAO_PI_Export PolicyFactory
00098 : public virtual ::CORBA::Object
00099 {
00100 public:
00101 typedef PolicyFactory_ptr _ptr_type;
00102 typedef PolicyFactory_var _var_type;
00103
00104
00105 static PolicyFactory_ptr _duplicate (PolicyFactory_ptr obj);
00106
00107 static void _tao_release (PolicyFactory_ptr obj);
00108
00109 static PolicyFactory_ptr _narrow (
00110 ::CORBA::Object_ptr obj
00111 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00112 );
00113
00114 static PolicyFactory_ptr _unchecked_narrow (
00115 ::CORBA::Object_ptr obj
00116 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00117 );
00118
00119 static PolicyFactory_ptr _nil (void)
00120 {
00121 return static_cast<PolicyFactory_ptr> (0);
00122 }
00123
00124
00125
00126
00127
00128
00129 virtual ::CORBA::Policy_ptr create_policy (
00130 ::CORBA::PolicyType type,
00131 const ::CORBA::Any & value
00132 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00133 )
00134 ACE_THROW_SPEC ((
00135 ::CORBA::SystemException,
00136 ::CORBA::PolicyError
00137 )) = 0;
00138
00139
00140 virtual ::CORBA::Policy_ptr _create_policy (
00141 CORBA::PolicyType type
00142 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00143 )
00144 ACE_THROW_SPEC ((
00145 CORBA::SystemException
00146 , CORBA::PolicyError
00147 ));
00148
00149
00150
00151
00152 virtual ::CORBA::Boolean _is_a (
00153 const char *type_id
00154 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00155 );
00156
00157 virtual const char* _interface_repository_id (void) const;
00158 virtual ::CORBA::Boolean marshal (TAO_OutputCDR &cdr);
00159
00160 protected:
00161
00162 PolicyFactory (void);
00163
00164 virtual ~PolicyFactory (void);
00165
00166 private:
00167
00168 PolicyFactory (const PolicyFactory &);
00169
00170 void operator= (const PolicyFactory &);
00171 };
00172
00173 #endif
00174
00175
00176
00177
00178 }
00179
00180
00181
00182
00183
00184 namespace TAO
00185 {
00186
00187 #if !defined (_PORTABLEINTERCEPTOR_POLICYFACTORY__TRAITS_)
00188 #define _PORTABLEINTERCEPTOR_POLICYFACTORY__TRAITS_
00189
00190 template<>
00191 struct TAO_PI_Export Objref_Traits< ::PortableInterceptor::PolicyFactory>
00192 {
00193 static ::PortableInterceptor::PolicyFactory_ptr duplicate (
00194 ::PortableInterceptor::PolicyFactory_ptr
00195 );
00196 static void release (
00197 ::PortableInterceptor::PolicyFactory_ptr
00198 );
00199 static ::PortableInterceptor::PolicyFactory_ptr nil (void);
00200 static ::CORBA::Boolean marshal (
00201 ::PortableInterceptor::PolicyFactory_ptr p,
00202 TAO_OutputCDR & cdr
00203 );
00204 };
00205
00206 #endif
00207 }
00208
00209
00210
00211
00212 TAO_END_VERSIONED_NAMESPACE_DECL
00213
00214 #include "ace/post.h"
00215
00216 #endif
00217
00218