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
00101 );
00102
00103 static void _is_a_skel (
00104 TAO_ServerRequest & req,
00105 void * servant_upcall,
00106 void * servant
00107
00108 );
00109
00110 static void _non_existent_skel (
00111 TAO_ServerRequest & req,
00112 void * servant_upcall,
00113 void * servant
00114
00115 );
00116
00117 static void _interface_skel (
00118 TAO_ServerRequest & req,
00119 void * servant_upcall,
00120 void * servant
00121
00122 );
00123
00124 static void _component_skel (
00125 TAO_ServerRequest & req,
00126 void * servant_upcall,
00127 void * servant
00128
00129 );
00130
00131 virtual void _dispatch (
00132 TAO_ServerRequest & req,
00133 void * servant_upcall
00134
00135 );
00136
00137 ::CORBA::Policy *_this (
00138 void
00139 );
00140
00141 virtual const char* _interface_repository_id (void) const;
00142
00143
00144
00145
00146 virtual CORBA::PolicyType policy_type (
00147 void
00148 )
00149 = 0;
00150
00151 static void _get_policy_type_skel (
00152 TAO_ServerRequest & server_request,
00153 void * servant_upcall,
00154 void * servant
00155
00156 );
00157
00158
00159
00160
00161 virtual ::CORBA::Policy_ptr copy (
00162 void
00163 )
00164 = 0;
00165
00166 static void copy_skel (
00167 TAO_ServerRequest & server_request,
00168 void * servant_upcall,
00169 void * servant
00170
00171 );
00172
00173
00174
00175
00176 virtual void destroy (
00177 void
00178 )
00179 = 0;
00180
00181 static void destroy_skel (
00182 TAO_ServerRequest & server_request,
00183 void * servant_upcall,
00184 void * servant
00185
00186 );
00187 };
00188
00189
00190
00191
00192
00193
00194
00195
00196 class TAO_PortableServer_Export _TAO_Policy_Strategized_Proxy_Broker
00197 : public virtual TAO::Collocation_Proxy_Broker
00198 {
00199 public:
00200 _TAO_Policy_Strategized_Proxy_Broker (void);
00201
00202 virtual ~_TAO_Policy_Strategized_Proxy_Broker (void);
00203
00204 TAO::Collocation_Strategy
00205 get_strategy (
00206 CORBA::Object_ptr obj
00207
00208 );
00209
00210 void
00211 dispatch (
00212 CORBA::Object_ptr obj,
00213 CORBA::Object_out forward_obj,
00214 TAO::Argument ** args,
00215 int num_args,
00216 const char * op,
00217 size_t op_len,
00218 TAO::Collocation_Strategy strategy
00219
00220 );
00221
00222 static _TAO_Policy_Strategized_Proxy_Broker *
00223 the_TAO_Policy_Strategized_Proxy_Broker (void);
00224 };
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239 class TAO_PortableServer_Export _TAO_Policy_Direct_Proxy_Impl
00240 {
00241 public:
00242 _TAO_Policy_Direct_Proxy_Impl (void);
00243
00244 virtual ~_TAO_Policy_Direct_Proxy_Impl (void);
00245
00246
00247
00248
00249 static void
00250 _get_policy_type (
00251 TAO_Abstract_ServantBase *servant,
00252 TAO::Argument ** args,
00253 int num_args
00254
00255 );
00256
00257
00258
00259
00260 static void
00261 copy (
00262 TAO_Abstract_ServantBase *servant,
00263 TAO::Argument ** args,
00264 int num_args
00265
00266 );
00267
00268
00269
00270
00271 static void
00272 destroy (
00273 TAO_Abstract_ServantBase *servant,
00274 TAO::Argument ** args,
00275 int num_args
00276
00277 );
00278 };
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289 }
00290
00291
00292
00293
00294 TAO_END_VERSIONED_NAMESPACE_DECL
00295
00296 #include "tao/PortableServer/PolicyS_T.h"
00297
00298
00299 #if defined(_MSC_VER)
00300 #pragma warning(pop)
00301 #endif
00302
00303 #if defined (__BORLANDC__)
00304 #pragma option pop
00305 #endif
00306
00307 #include "ace/post.h"
00308 #endif
00309