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
00032 #ifndef _TAO_IDL_ORIG_POLICYS_CPP_
00033 #define _TAO_IDL_ORIG_POLICYS_CPP_
00034
00035
00036 #include "tao/AnyTypeCode/TypeCode.h"
00037 #include "tao/AnyTypeCode/Any.h"
00038 #include "tao/PortableServer/PolicyS.h"
00039 #include "tao/PortableServer/Operation_Table_Perfect_Hash.h"
00040 #include "tao/PortableServer/Direct_Collocation_Upcall_Wrapper.h"
00041 #include "tao/PortableServer/Upcall_Command.h"
00042 #include "tao/PortableServer/Upcall_Wrapper.h"
00043 #include "tao/PortableServer/Basic_SArguments.h"
00044 #include "tao/PortableServer/Object_SArgument_T.h"
00045 #include "tao/PortableServer/Special_Basic_SArguments.h"
00046 #include "tao/PortableServer/UB_String_SArguments.h"
00047 #include "tao/PortableServer/TypeCode_SArg_Traits.h"
00048 #include "tao/PortableServer/Object_SArg_Traits.h"
00049 #include "tao/PortableServer/get_arg.h"
00050 #include "tao/Special_Basic_Arguments.h"
00051 #include "tao/UB_String_Arguments.h"
00052 #include "tao/TAO_Server_Request.h"
00053 #include "tao/ORB_Core.h"
00054 #include "tao/Profile.h"
00055 #include "tao/Stub.h"
00056 #include "tao/IFR_Client_Adapter.h"
00057 #include "tao/Object_T.h"
00058 #include "tao/CDR.h"
00059 #include "tao/operation_details.h"
00060 #include "tao/PortableInterceptor.h"
00061 #include "tao/Basic_Arguments.h"
00062 #include "tao/Object_Argument_T.h"
00063 #include "ace/Dynamic_Service.h"
00064 #include "ace/Malloc_Allocator.h"
00065
00066
00067
00068
00069 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00070
00071
00072 namespace TAO
00073 {
00074
00075 #if !defined (_CORBA_POLICY__SARG_TRAITS_SS_)
00076 #define _CORBA_POLICY__SARG_TRAITS_SS_
00077
00078 template<>
00079 class SArg_Traits<CORBA::Policy>
00080 : public
00081 Object_SArg_Traits_T<
00082 CORBA::Policy_ptr,
00083 CORBA::Policy_var,
00084 CORBA::Policy_out,
00085 TAO::Any_Insert_Policy_Stream <CORBA::Policy_ptr>
00086 >
00087 {
00088 };
00089
00090 #endif
00091 }
00092
00093
00094
00095
00096
00097
00098 namespace TAO
00099 {
00100
00101 #if !defined (_CORBA_POLICY__ARG_TRAITS_SS_)
00102 #define _CORBA_POLICY__ARG_TRAITS_SS_
00103
00104 template<>
00105 class Arg_Traits<CORBA::Policy>
00106 : public
00107 Object_Arg_Traits_T<
00108 CORBA::Policy_ptr,
00109 CORBA::Policy_var,
00110 CORBA::Policy_out,
00111 TAO::Objref_Traits<CORBA::Policy>,
00112 TAO::Any_Insert_Policy_Stream <CORBA::Policy_ptr>
00113 >
00114 {
00115 };
00116
00117 #endif
00118 }
00119
00120
00121
00122
00123
00124 class TAO_CORBA_Policy_Perfect_Hash_OpTable
00125 : public TAO_Perfect_Hash_OpTable
00126 {
00127 private:
00128 unsigned int hash (const char *str, unsigned int len);
00129
00130 public:
00131 const TAO_operation_db_entry * lookup (const char *str, unsigned int len);
00132 };
00133
00134
00135
00136 unsigned int
00137 TAO_CORBA_Policy_Perfect_Hash_OpTable::hash (const char *str, unsigned int len)
00138 {
00139 static const unsigned char asso_values[] =
00140 {
00141 #if defined (ACE_MVS)
00142 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00143 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00144 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00145 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00146 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00147 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00148 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00149 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00150 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00151 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00152 22, 22, 22, 22, 22, 22, 22, 22, 22, 0,
00153 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00154 22, 22, 22, 22, 22, 22, 22, 22, 22, 0,
00155 22, 0, 0, 5, 22, 22, 22, 22, 22, 22,
00156 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00157 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00158 22, 22, 22, 0, 22, 22, 22, 22, 0, 22,
00159 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00160 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00161 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00162 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00163 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00164 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00165 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00166 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00167 22, 22, 22, 22, 22, 22,
00168 #else
00169 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00170 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00171 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00172 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00173 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00174 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00175 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00176 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00177 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
00178 22, 22, 22, 22, 22, 0, 22, 0, 22, 0,
00179 0, 5, 22, 22, 22, 22, 22, 22, 22, 22,
00180 22, 22, 22, 22, 22, 22, 0, 22, 22, 22,
00181 22, 0, 22, 22, 22, 22, 22, 22,
00182 #endif
00183 };
00184 return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]];
00185 }
00186
00187 const TAO_operation_db_entry *
00188 TAO_CORBA_Policy_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len)
00189 {
00190 enum
00191 {
00192 TOTAL_KEYWORDS = 7,
00193 MIN_WORD_LENGTH = 4,
00194 MAX_WORD_LENGTH = 16,
00195 MIN_HASH_VALUE = 4,
00196 MAX_HASH_VALUE = 21,
00197 HASH_VALUE_RANGE = 18,
00198 DUPLICATES = 0,
00199 WORDLIST_SIZE = 11
00200 };
00201
00202 static const TAO_operation_db_entry wordlist[] =
00203 {
00204 {"",0,0},{"",0,0},{"",0,0},{"",0,0},
00205 {"copy", &POA_CORBA::Policy::copy_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::copy},
00206 {"_is_a", &POA_CORBA::Policy::_is_a_skel, 0},
00207 {"",0,0},
00208 {"destroy", &POA_CORBA::Policy::destroy_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::destroy},
00209 {"",0,0},{"",0,0},
00210 {"_component", &POA_CORBA::Policy::_component_skel, 0},
00211 {"",0,0},{"",0,0},
00212 {"_non_existent", &POA_CORBA::Policy::_non_existent_skel, 0},
00213 {"",0,0},
00214 {"_interface", &POA_CORBA::Policy::_interface_skel, 0},
00215 {"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0},
00216 {"_get_policy_type", &POA_CORBA::Policy::_get_policy_type_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_get_policy_type},
00217 };
00218
00219 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
00220 {
00221 unsigned int key = hash (str, len);
00222
00223 if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
00224 {
00225 const char *s = wordlist[key].opname;
00226
00227 if (*str == *s && !strncmp (str + 1, s + 1, len - 1))
00228 return &wordlist[key];
00229 }
00230 }
00231 return 0;
00232 }
00233
00234 static TAO_CORBA_Policy_Perfect_Hash_OpTable tao_CORBA_Policy_optable;
00235
00236
00237
00238
00239
00240
00241
00242
00243 POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker *
00244 POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker::the_TAO_Policy_Strategized_Proxy_Broker (void)
00245 {
00246 static POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker
00247 strategized_proxy_broker;
00248
00249 return &strategized_proxy_broker;
00250 }
00251
00252 POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker::_TAO_Policy_Strategized_Proxy_Broker (void)
00253 {
00254 }
00255
00256 POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker::~_TAO_Policy_Strategized_Proxy_Broker (void)
00257 {
00258 }
00259
00260 TAO::Collocation_Strategy
00261 POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker::get_strategy (
00262 CORBA::Object_ptr obj
00263
00264 )
00265 {
00266 TAO::Collocation_Strategy strategy =
00267 TAO_ORB_Core::collocation_strategy (obj);
00268
00269 return strategy;
00270 }
00271
00272 void
00273 POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker::dispatch (
00274 CORBA::Object_ptr obj,
00275 CORBA::Object_out forward_obj,
00276 TAO::Argument ** args,
00277 int num_args,
00278 const char * op,
00279 size_t op_len,
00280 TAO::Collocation_Strategy strategy
00281
00282 )
00283 {
00284 TAO::Direct_Collocation_Upcall_Wrapper collocation_upcall_wrapper;
00285 collocation_upcall_wrapper.upcall (
00286 obj,
00287 forward_obj,
00288 args,
00289 num_args,
00290 op,
00291 op_len,
00292 strategy
00293 );
00294 }
00295
00296
00297
00298
00299
00300
00301
00302
00303 TAO::Collocation_Proxy_Broker *
00304 CORBA__TAO_Policy_Proxy_Broker_Factory_function (CORBA::Object_ptr)
00305 {
00306 return
00307 ::POA_CORBA::_TAO_Policy_Strategized_Proxy_Broker::the_TAO_Policy_Strategized_Proxy_Broker ();
00308 }
00309
00310 int
00311 CORBA__TAO_Policy_Proxy_Broker_Factory_Initializer (size_t)
00312 {
00313 CORBA__TAO_Policy_Proxy_Broker_Factory_function_pointer =
00314 CORBA__TAO_Policy_Proxy_Broker_Factory_function;
00315
00316 return 0;
00317 }
00318
00319 static int
00320 CORBA__TAO_Policy_Proxy_Broker_Stub_Factory_Initializer_Scarecrow =
00321 CORBA__TAO_Policy_Proxy_Broker_Factory_Initializer (
00322 reinterpret_cast<size_t> (CORBA__TAO_Policy_Proxy_Broker_Factory_Initializer)
00323 );
00324
00325
00326
00327
00328
00329
00330
00331 POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_TAO_Policy_Direct_Proxy_Impl (void)
00332 {}
00333
00334 POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::~_TAO_Policy_Direct_Proxy_Impl (void)
00335 {}
00336
00337
00338
00339
00340 void
00341 POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_get_policy_type (
00342 TAO_Abstract_ServantBase *servant,
00343 TAO::Argument ** args,
00344 int
00345
00346 )
00347 {
00348 ((TAO::Arg_Traits< ::CORBA::PolicyType>::ret_val *) args[0])->arg () =
00349 dynamic_cast<POA_CORBA::Policy_ptr>
00350 (servant)
00351 ->policy_type (
00352
00353 );
00354 }
00355
00356
00357
00358 void
00359 POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::copy (
00360 TAO_Abstract_ServantBase *servant,
00361 TAO::Argument ** args,
00362 int
00363
00364 )
00365 {
00366 ((TAO::Arg_Traits< CORBA::Policy>::ret_val *) args[0])->arg () =
00367 dynamic_cast<POA_CORBA::Policy_ptr>
00368 (servant)
00369 ->copy (
00370
00371 );
00372 }
00373
00374
00375
00376 void
00377 POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::destroy (
00378 TAO_Abstract_ServantBase *servant,
00379 TAO::Argument **,
00380 int
00381 )
00382 {
00383 dynamic_cast<POA_CORBA::Policy_ptr>
00384 (servant)
00385 ->destroy (
00386
00387 );
00388 }
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398 POA_CORBA::Policy::Policy (void)
00399 : TAO_ServantBase ()
00400 {
00401 this->optable_ = &tao_CORBA_Policy_optable;
00402 }
00403
00404 POA_CORBA::Policy::Policy (const Policy& rhs)
00405 : TAO_Abstract_ServantBase (rhs),
00406 TAO_ServantBase (rhs)
00407 {
00408 }
00409
00410 POA_CORBA::Policy::~Policy (void)
00411 {
00412 }
00413 namespace POA_CORBA
00414 {
00415
00416
00417
00418
00419
00420 class _get_policy_type_Policy
00421 : public TAO::Upcall_Command
00422 {
00423 public:
00424 inline _get_policy_type_Policy (
00425 POA_CORBA::Policy * servant,
00426 TAO_Operation_Details const * operation_details,
00427 TAO::Argument * const args[])
00428 : servant_ (servant)
00429 , operation_details_ (operation_details)
00430 , args_ (args)
00431 {
00432 }
00433
00434 virtual void execute (void)
00435 {
00436 TAO::SArg_Traits< ::CORBA::PolicyType>::ret_arg_type retval =
00437 TAO::Portable_Server::get_ret_arg< ::CORBA::PolicyType> (
00438 this->operation_details_,
00439 this->args_);
00440
00441
00442 retval =
00443 this->servant_->policy_type (
00444 );
00445
00446 }
00447
00448 private:
00449 POA_CORBA::Policy * const servant_;
00450 TAO_Operation_Details const * const operation_details_;
00451 TAO::Argument * const * const args_;
00452 };
00453
00454 }
00455
00456
00457
00458
00459
00460 void POA_CORBA::Policy::_get_policy_type_skel (
00461 TAO_ServerRequest & server_request,
00462 void * TAO_INTERCEPTOR (servant_upcall),
00463 void * servant
00464
00465 )
00466 {
00467
00468
00469 #if TAO_HAS_INTERCEPTORS == 1
00470 static CORBA::TypeCode_ptr const * const exceptions = 0;
00471 static CORBA::ULong const nexceptions = 0;
00472 #endif
00473
00474 TAO::SArg_Traits< ::CORBA::PolicyType>::ret_val retval;
00475
00476 TAO::Argument * const args[] =
00477 {
00478 &retval
00479 };
00480
00481 static size_t const nargs = 1;
00482
00483 POA_CORBA::Policy * const impl =
00484 static_cast<POA_CORBA::Policy *> (servant);
00485
00486 _get_policy_type_Policy command (
00487 impl,
00488 server_request.operation_details (),
00489 args);
00490
00491 TAO::Upcall_Wrapper upcall_wrapper;
00492 upcall_wrapper.upcall (server_request
00493 , args
00494 , nargs
00495 , command
00496 #if TAO_HAS_INTERCEPTORS == 1
00497 , servant_upcall
00498 , exceptions
00499 , nexceptions
00500 #endif
00501 );
00502
00503 }
00504 namespace POA_CORBA
00505 {
00506
00507
00508
00509
00510
00511 class copy_Policy
00512 : public TAO::Upcall_Command
00513 {
00514 public:
00515 inline copy_Policy (
00516 POA_CORBA::Policy * servant,
00517 TAO_Operation_Details const * operation_details,
00518 TAO::Argument * const args[])
00519 : servant_ (servant)
00520 , operation_details_ (operation_details)
00521 , args_ (args)
00522 {
00523 }
00524
00525 virtual void execute (void)
00526 {
00527 TAO::SArg_Traits< CORBA::Policy>::ret_arg_type retval =
00528 TAO::Portable_Server::get_ret_arg< CORBA::Policy> (
00529 this->operation_details_,
00530 this->args_);
00531
00532
00533 retval =
00534 this->servant_->copy (
00535 );
00536
00537 }
00538
00539 private:
00540 POA_CORBA::Policy * const servant_;
00541 TAO_Operation_Details const * const operation_details_;
00542 TAO::Argument * const * const args_;
00543 };
00544
00545 }
00546
00547
00548
00549
00550
00551 void POA_CORBA::Policy::copy_skel (
00552 TAO_ServerRequest & server_request,
00553 void * TAO_INTERCEPTOR (servant_upcall),
00554 void * servant
00555
00556 )
00557 {
00558
00559
00560 #if TAO_HAS_INTERCEPTORS == 1
00561 static CORBA::TypeCode_ptr const * const exceptions = 0;
00562 static CORBA::ULong const nexceptions = 0;
00563 #endif
00564
00565 TAO::SArg_Traits< CORBA::Policy>::ret_val retval;
00566
00567 TAO::Argument * const args[] =
00568 {
00569 &retval
00570 };
00571
00572 static size_t const nargs = 1;
00573
00574 POA_CORBA::Policy * const impl =
00575 static_cast<POA_CORBA::Policy *> (servant);
00576
00577 copy_Policy command (
00578 impl,
00579 server_request.operation_details (),
00580 args);
00581
00582 TAO::Upcall_Wrapper upcall_wrapper;
00583 upcall_wrapper.upcall (server_request
00584 , args
00585 , nargs
00586 , command
00587 #if TAO_HAS_INTERCEPTORS == 1
00588 , servant_upcall
00589 , exceptions
00590 , nexceptions
00591 #endif
00592 );
00593
00594 }
00595 namespace POA_CORBA
00596 {
00597
00598
00599
00600
00601
00602 class destroy_Policy
00603 : public TAO::Upcall_Command
00604 {
00605 public:
00606 inline destroy_Policy (
00607 POA_CORBA::Policy * servant)
00608 : servant_ (servant)
00609 {
00610 }
00611
00612 virtual void execute (void)
00613 {
00614 this->servant_->destroy (
00615 );
00616
00617 }
00618
00619 private:
00620 POA_CORBA::Policy * const servant_;
00621 };
00622
00623 }
00624
00625
00626
00627
00628
00629 void POA_CORBA::Policy::destroy_skel (
00630 TAO_ServerRequest & server_request,
00631 void * TAO_INTERCEPTOR (servant_upcall),
00632 void * servant
00633
00634 )
00635 {
00636
00637
00638 #if TAO_HAS_INTERCEPTORS == 1
00639 static CORBA::TypeCode_ptr const * const exceptions = 0;
00640 static CORBA::ULong const nexceptions = 0;
00641 #endif
00642
00643 TAO::SArg_Traits< void>::ret_val retval;
00644
00645 TAO::Argument * const args[] =
00646 {
00647 &retval
00648 };
00649
00650 static size_t const nargs = 1;
00651
00652 POA_CORBA::Policy * const impl =
00653 static_cast<POA_CORBA::Policy *> (servant);
00654
00655 destroy_Policy command (
00656 impl);
00657
00658 TAO::Upcall_Wrapper upcall_wrapper;
00659 upcall_wrapper.upcall (server_request
00660 , args
00661 , nargs
00662 , command
00663 #if TAO_HAS_INTERCEPTORS == 1
00664 , servant_upcall
00665 , exceptions
00666 , nexceptions
00667 #endif
00668 );
00669
00670 }
00671
00672
00673
00674
00675 namespace POA_CORBA
00676 {
00677
00678
00679
00680
00681
00682 class _is_a_Policy_Upcall_Command
00683 : public TAO::Upcall_Command
00684 {
00685 public:
00686 inline _is_a_Policy_Upcall_Command (
00687 POA_CORBA::Policy * servant,
00688 TAO_Operation_Details const * operation_details,
00689 TAO::Argument * const args[])
00690 : servant_ (servant)
00691 , operation_details_ (operation_details)
00692 , args_ (args)
00693 {
00694 }
00695
00696 virtual void execute (void)
00697 {
00698 TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval =
00699 TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean> (
00700 this->operation_details_,
00701 this->args_);
00702
00703 TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 =
00704 TAO::Portable_Server::get_in_arg< CORBA::Char *> (
00705 this->operation_details_,
00706 this->args_,
00707 1);
00708
00709
00710 retval =
00711 this->servant_-> _is_a (
00712 arg_1
00713 );
00714
00715 }
00716
00717 private:
00718 POA_CORBA::Policy * const servant_;
00719 TAO_Operation_Details const * const operation_details_;
00720 TAO::Argument * const * const args_;
00721 };
00722
00723 }
00724 void POA_CORBA::Policy::_is_a_skel (
00725 TAO_ServerRequest & server_request,
00726 void * TAO_INTERCEPTOR (servant_upcall),
00727 void * servant
00728
00729 )
00730 {
00731
00732
00733 #if TAO_HAS_INTERCEPTORS == 1
00734 static CORBA::TypeCode_ptr const * const exceptions = 0;
00735 static CORBA::ULong const nexceptions = 0;
00736 #endif
00737
00738 TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval;
00739 TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_repository_id;
00740
00741 TAO::Argument * const args[] =
00742 {
00743 &retval,
00744 &_tao_repository_id
00745 };
00746
00747 static size_t const nargs = 2;
00748
00749 POA_CORBA::Policy * const impl =
00750 static_cast<POA_CORBA::Policy *> (servant);
00751
00752 _is_a_Policy_Upcall_Command command (
00753 impl,
00754 server_request.operation_details (),
00755 args);
00756
00757 TAO::Upcall_Wrapper upcall_wrapper;
00758 upcall_wrapper.upcall (server_request
00759 , args
00760 , nargs
00761 , command
00762 #if TAO_HAS_INTERCEPTORS == 1
00763 , servant_upcall
00764 , exceptions
00765 , nexceptions
00766 #endif
00767 );
00768
00769 }
00770
00771 namespace POA_CORBA
00772 {
00773
00774
00775
00776
00777
00778 class _non_existent_Policy_Upcall_Command
00779 : public TAO::Upcall_Command
00780 {
00781 public:
00782 inline _non_existent_Policy_Upcall_Command (
00783 POA_CORBA::Policy * servant,
00784 TAO_Operation_Details const * operation_details,
00785 TAO::Argument * const args[])
00786 : servant_ (servant)
00787 , operation_details_ (operation_details)
00788 , args_ (args)
00789 {
00790 }
00791
00792 virtual void execute (void)
00793 {
00794 TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval =
00795 TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean> (
00796 this->operation_details_,
00797 this->args_);
00798
00799
00800 retval =
00801 this->servant_-> _non_existent (
00802 );
00803
00804 }
00805
00806 private:
00807 POA_CORBA::Policy * const servant_;
00808 TAO_Operation_Details const * const operation_details_;
00809 TAO::Argument * const * const args_;
00810 };
00811
00812 }
00813 void POA_CORBA::Policy::_non_existent_skel (
00814 TAO_ServerRequest & server_request,
00815 void * TAO_INTERCEPTOR (servant_upcall),
00816 void * servant
00817
00818 )
00819 {
00820
00821
00822 #if TAO_HAS_INTERCEPTORS == 1
00823 static CORBA::TypeCode_ptr const * const exceptions = 0;
00824 static CORBA::ULong const nexceptions = 0;
00825 #endif
00826
00827 TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval;
00828
00829 TAO::Argument * const args[] =
00830 {
00831 &retval
00832 };
00833
00834 static size_t const nargs = 1;
00835
00836 POA_CORBA::Policy * const impl =
00837 static_cast<POA_CORBA::Policy *> (servant);
00838
00839 _non_existent_Policy_Upcall_Command command (
00840 impl,
00841 server_request.operation_details (),
00842 args);
00843
00844 TAO::Upcall_Wrapper upcall_wrapper;
00845 upcall_wrapper.upcall (server_request
00846 , args
00847 , nargs
00848 , command
00849 #if TAO_HAS_INTERCEPTORS == 1
00850 , servant_upcall
00851 , exceptions
00852 , nexceptions
00853 #endif
00854 );
00855
00856 }
00857
00858
00859
00860
00861
00862
00863
00864
00865 void POA_CORBA::Policy::_interface_skel (
00866 TAO_ServerRequest & server_request,
00867 void * ,
00868 void * servant
00869
00870 )
00871 {
00872 TAO_IFR_Client_Adapter *_tao_adapter =
00873 ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance (
00874 TAO_ORB_Core::ifr_client_adapter_name ()
00875 );
00876
00877 if (_tao_adapter == 0)
00878 {
00879 throw ::CORBA::INTF_REPOS (CORBA::OMGVMCID | 1, CORBA::COMPLETED_NO);
00880 }
00881
00882 POA_CORBA::Policy * const impl =
00883 static_cast<POA_CORBA::Policy *> (servant);
00884 CORBA::InterfaceDef_ptr _tao_retval =
00885 impl->_get_interface ();
00886
00887 server_request.init_reply ();
00888 TAO_OutputCDR &_tao_out = *server_request.outgoing ();
00889
00890 CORBA::Boolean const _tao_result =
00891 _tao_adapter->interfacedef_cdr_insert (
00892 _tao_out,
00893 _tao_retval
00894 );
00895
00896 _tao_adapter->dispose (_tao_retval);
00897
00898 if (_tao_result == 0)
00899 {
00900 throw ::CORBA::MARSHAL ();
00901 }
00902 }
00903
00904 namespace POA_CORBA
00905 {
00906
00907
00908
00909
00910
00911 class _get_component_Policy_Upcall_Command
00912 : public TAO::Upcall_Command
00913 {
00914 public:
00915 inline _get_component_Policy_Upcall_Command (
00916 POA_CORBA::Policy * servant,
00917 TAO_Operation_Details const * operation_details,
00918 TAO::Argument * const args[])
00919 : servant_ (servant)
00920 , operation_details_ (operation_details)
00921 , args_ (args)
00922 {
00923 }
00924
00925 virtual void execute (void)
00926 {
00927 TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type retval =
00928 TAO::Portable_Server::get_ret_arg< ::CORBA::Object> (
00929 this->operation_details_,
00930 this->args_);
00931
00932
00933 retval =
00934 this->servant_-> _get_component (
00935 );
00936
00937 }
00938
00939 private:
00940 POA_CORBA::Policy * const servant_;
00941 TAO_Operation_Details const * const operation_details_;
00942 TAO::Argument * const * const args_;
00943 };
00944
00945 }
00946 void POA_CORBA::Policy::_component_skel (
00947 TAO_ServerRequest & server_request,
00948 void * TAO_INTERCEPTOR (servant_upcall),
00949 void * servant
00950
00951 )
00952 {
00953
00954
00955 #if TAO_HAS_INTERCEPTORS == 1
00956 static CORBA::TypeCode_ptr const * const exceptions = 0;
00957 static CORBA::ULong const nexceptions = 0;
00958 #endif
00959
00960 TAO::SArg_Traits< ::CORBA::Object>::ret_val retval;
00961
00962 TAO::Argument * const args[] =
00963 {
00964 &retval
00965 };
00966
00967 static size_t const nargs = 1;
00968
00969 POA_CORBA::Policy * const impl =
00970 static_cast<POA_CORBA::Policy *> (servant);
00971
00972 _get_component_Policy_Upcall_Command command (
00973 impl,
00974 server_request.operation_details (),
00975 args);
00976
00977 TAO::Upcall_Wrapper upcall_wrapper;
00978 upcall_wrapper.upcall (server_request
00979 , args
00980 , nargs
00981 , command
00982 #if TAO_HAS_INTERCEPTORS == 1
00983 , servant_upcall
00984 , exceptions
00985 , nexceptions
00986 #endif
00987 );
00988
00989 }
00990
00991 CORBA::Boolean POA_CORBA::Policy::_is_a (
00992 const char* value
00993
00994 )
00995 {
00996 return
00997 (
00998 !ACE_OS::strcmp (
00999 value,
01000 "IDL:omg.org/CORBA/Policy:1.0"
01001 ) ||
01002 !ACE_OS::strcmp (
01003 value,
01004 "IDL:omg.org/CORBA/Object:1.0"
01005 )
01006 );
01007 }
01008
01009 const char* POA_CORBA::Policy::_interface_repository_id (void) const
01010 {
01011 return "IDL:omg.org/CORBA/Policy:1.0";
01012 }
01013
01014
01015
01016
01017 void POA_CORBA::Policy::_dispatch (
01018 TAO_ServerRequest & req,
01019 void * servant_upcall
01020
01021 )
01022 {
01023 this->synchronous_upcall_dispatch (req,
01024 servant_upcall,
01025 this
01026 );
01027 }
01028
01029
01030
01031
01032 CORBA::Policy *
01033 POA_CORBA::Policy::_this (void)
01034 {
01035 TAO_Stub *stub = this->_create_stub ();
01036
01037 TAO_Stub_Auto_Ptr safe_stub (stub);
01038 CORBA::Object_ptr tmp = CORBA::Object::_nil ();
01039
01040 CORBA::Boolean _tao_opt_colloc =
01041 stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ();
01042
01043 ACE_NEW_RETURN (
01044 tmp,
01045 CORBA::Object (stub, _tao_opt_colloc, this),
01046 0
01047 );
01048
01049 CORBA::Object_var obj = tmp;
01050 (void) safe_stub.release ();
01051
01052 typedef ::CORBA::Policy STUB_SCOPED_NAME;
01053 return
01054 TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (
01055 obj.in (),
01056 CORBA__TAO_Policy_Proxy_Broker_Factory_function_pointer
01057 );
01058 }
01059
01060 #endif
01061
01062
01063 TAO_END_VERSIONED_NAMESPACE_DECL