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_ORIG_POLICYS_H_
00032 #define _TAO_IDL_ORIG_POLICYS_H_
00033
00034 #include "ace/pre.h"
00035
00036 #include "tao/PolicyC.h"
00037 #include "tao/UShortSeqS.h"
00038 #include "tao/CurrentS.h"
00039 #include "tao/Policy_ForwardS.h"
00040
00041 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00042 # pragma once
00043 #endif
00044
00045 #include "tao/Collocation_Proxy_Broker.h"
00046 #include "tao/PortableServer/PortableServer.h"
00047 #include "tao/PortableServer/Servant_Base.h"
00048
00049 #if defined(_MSC_VER)
00050 #pragma warning(push)
00051 #pragma warning(disable:4250)
00052 #endif
00053
00054 #if defined (__BORLANDC__)
00055 #pragma option push -w-rvl -w-rch -w-ccc -w-inl
00056 #endif
00057
00058 #include "tao/PortableServer/portableserver_export.h"
00059
00060 #if defined (TAO_EXPORT_MACRO)
00061 #undef TAO_EXPORT_MACRO
00062 #endif
00063 #define TAO_EXPORT_MACRO TAO_PortableServer_Export
00064
00065
00066
00067
00068 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00069
00070 namespace POA_CORBA
00071 {
00072
00073
00074
00075
00076
00077 class Policy;
00078 typedef Policy *Policy_ptr;
00079
00080 class _TAO_Policy_Direct_Proxy_Impl;
00081 class _TAO_Policy_Strategized_Proxy_Broker;
00082
00083 class TAO_PortableServer_Export Policy
00084 : public virtual PortableServer::ServantBase
00085 {
00086 protected:
00087 Policy (void);
00088
00089 public:
00090
00091 typedef ::CORBA::Policy _stub_type;
00092 typedef ::CORBA::Policy_ptr _stub_ptr_type;
00093 typedef ::CORBA::Policy_var _stub_var_type;
00094
00095 Policy (const Policy& rhs);
00096 virtual ~Policy (void);
00097
00098 virtual CORBA::Boolean _is_a (
00099 const char* logical_type_id
00100 ACE_ENV_ARG_DECL_WITH_DEFAULTS
00101 );
00102
00103 static void _is_a_skel (
00104 TAO_ServerRequest & req,
00105 void * servant_upcall,
00106 void * servant
00107 ACE_ENV_ARG_DECL
00108 );
00109
00110 static void _non_existent_skel (
00111 TAO_ServerRequest & req,
00112 void * servant_upcall,
00113 void * servant
00114 ACE_ENV_ARG_DECL
00115 );
00116
00117 static void _interface_skel (
00118 TAO_ServerRequest & req,
00119 void * servant_upcall,
00120 void * servant
00121 ACE_ENV_ARG_DECL
00122 );
00123
00124 static void _component_skel (
00125 TAO_ServerRequest & req,
00126 void * servant_upcall,
00127 void * servant
00128 ACE_ENV_ARG_DECL
00129 );
00130
00131 virtual void _dispatch (
00132 TAO_ServerRequest & req,
00133 void * servant_upcall
00134 ACE_ENV_ARG_DECL
00135 );
00136
00137 ::CORBA::Policy *_this (
00138 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
00139 );
00140
00141 virtual const char* _interface_repository_id (void) const;
00142
00143
00144
00145
00146 virtual CORBA::PolicyType policy_type (
00147 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
00148 )
00149 ACE_THROW_SPEC ((
00150 CORBA::SystemException
00151 )) = 0;
00152
00153 static void _get_policy_type_skel (
00154 TAO_ServerRequest & server_request,
00155 void * servant_upcall,
00156 void * servant
00157 ACE_ENV_ARG_DECL
00158 );
00159
00160
00161
00162
00163 virtual ::CORBA::Policy_ptr copy (
00164 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
00165 )
00166 ACE_THROW_SPEC ((
00167 CORBA::SystemException
00168 )) = 0;
00169
00170 static void copy_skel (
00171 TAO_ServerRequest & server_request,
00172 void * servant_upcall,
00173 void * servant
00174 ACE_ENV_ARG_DECL
00175 );
00176
00177
00178
00179
00180 virtual void destroy (
00181 ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
00182 )
00183 ACE_THROW_SPEC ((
00184 CORBA::SystemException
00185 )) = 0;
00186
00187 static void destroy_skel (
00188 TAO_ServerRequest & server_request,
00189 void * servant_upcall,
00190 void * servant
00191 ACE_ENV_ARG_DECL
00192 );
00193 };
00194
00195
00196
00197
00198
00199
00200
00201
00202 class TAO_PortableServer_Export _TAO_Policy_Strategized_Proxy_Broker
00203 : public virtual TAO::Collocation_Proxy_Broker
00204 {
00205 public:
00206 _TAO_Policy_Strategized_Proxy_Broker (void);
00207
00208 virtual ~_TAO_Policy_Strategized_Proxy_Broker (void);
00209
00210 TAO::Collocation_Strategy
00211 get_strategy (
00212 CORBA::Object_ptr obj
00213 ACE_ENV_ARG_DECL
00214 )
00215 ACE_THROW_SPEC ((CORBA::SystemException));
00216
00217 void
00218 dispatch (
00219 CORBA::Object_ptr obj,
00220 CORBA::Object_out forward_obj,
00221 TAO::Argument ** args,
00222 int num_args,
00223 const char * op,
00224 size_t op_len,
00225 TAO::Collocation_Strategy strategy
00226 ACE_ENV_ARG_DECL
00227 )
00228 ACE_THROW_SPEC ((CORBA::Exception));
00229
00230 static _TAO_Policy_Strategized_Proxy_Broker *
00231 the_TAO_Policy_Strategized_Proxy_Broker (void);
00232 };
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247 class TAO_PortableServer_Export _TAO_Policy_Direct_Proxy_Impl
00248 {
00249 public:
00250 _TAO_Policy_Direct_Proxy_Impl (void);
00251
00252 virtual ~_TAO_Policy_Direct_Proxy_Impl (void);
00253
00254
00255
00256
00257 static void
00258 _get_policy_type (
00259 TAO_Abstract_ServantBase *servant,
00260 TAO::Argument ** args,
00261 int num_args
00262 ACE_ENV_ARG_DECL
00263 )
00264 ACE_THROW_SPEC ((
00265 CORBA::SystemException
00266 ));
00267
00268
00269
00270
00271 static void
00272 copy (
00273 TAO_Abstract_ServantBase *servant,
00274 TAO::Argument ** args,
00275 int num_args
00276 ACE_ENV_ARG_DECL
00277 )
00278 ACE_THROW_SPEC ((
00279 CORBA::SystemException
00280 ));
00281
00282
00283
00284
00285 static void
00286 destroy (
00287 TAO_Abstract_ServantBase *servant,
00288 TAO::Argument ** args,
00289 int num_args
00290 ACE_ENV_ARG_DECL
00291 )
00292 ACE_THROW_SPEC ((
00293 CORBA::SystemException
00294 ));
00295 };
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306 }
00307
00308
00309
00310
00311 TAO_END_VERSIONED_NAMESPACE_DECL
00312
00313 #include "tao/PortableServer/PolicyS_T.h"
00314
00315
00316 #if defined(_MSC_VER)
00317 #pragma warning(pop)
00318 #endif
00319
00320 #if defined (__BORLANDC__)
00321 #pragma option pop
00322 #endif
00323
00324 #include "ace/post.h"
00325 #endif
00326