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 bool & is_forwarded,
00215 TAO::Argument ** args,
00216 int num_args,
00217 const char * op,
00218 size_t op_len,
00219 TAO::Collocation_Strategy strategy
00220
00221 );
00222
00223 static _TAO_Policy_Strategized_Proxy_Broker *
00224 the_TAO_Policy_Strategized_Proxy_Broker (void);
00225 };
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240 class TAO_PortableServer_Export _TAO_Policy_Direct_Proxy_Impl
00241 {
00242 public:
00243 _TAO_Policy_Direct_Proxy_Impl (void);
00244
00245 virtual ~_TAO_Policy_Direct_Proxy_Impl (void);
00246
00247
00248
00249
00250 static void
00251 _get_policy_type (
00252 TAO_Abstract_ServantBase *servant,
00253 TAO::Argument ** args,
00254 int num_args
00255
00256 );
00257
00258
00259
00260
00261 static void
00262 copy (
00263 TAO_Abstract_ServantBase *servant,
00264 TAO::Argument ** args,
00265 int num_args
00266
00267 );
00268
00269
00270
00271
00272 static void
00273 destroy (
00274 TAO_Abstract_ServantBase *servant,
00275 TAO::Argument ** args,
00276 int num_args
00277
00278 );
00279 };
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290 }
00291
00292
00293
00294
00295 TAO_END_VERSIONED_NAMESPACE_DECL
00296
00297 #include "tao/PortableServer/PolicyS_T.h"
00298
00299
00300 #if defined(_MSC_VER)
00301 #pragma warning(pop)
00302 #endif
00303
00304 #if defined (__BORLANDC__)
00305 #pragma option pop
00306 #endif
00307
00308 #include "ace/post.h"
00309 #endif
00310