// -*- C++ -*- // // $Id$ // **** Code generated by the The ACE ORB (TAO) IDL Compiler **** // TAO and the TAO IDL Compiler have been developed by: // Center for Distributed Object Computing // Washington University // St. Louis, MO // USA // http://www.cs.wustl.edu/~schmidt/doc-center.html // and // Distributed Object Computing Laboratory // University of California at Irvine // Irvine, CA // USA // http://doc.ece.uci.edu/ // and // Institute for Software Integrated Systems // Vanderbilt University // Nashville, TN // USA // http://www.isis.vanderbilt.edu/ // // Information about TAO is available at: // http://www.cs.wustl.edu/~schmidt/TAO.html // TAO_IDL - Generated from // be\be_codegen.cpp:599 #ifndef _TAO_IDL_ORIG_POLICYS_CPP_ #define _TAO_IDL_ORIG_POLICYS_CPP_ #include "tao/AnyTypeCode/TypeCode.h" #include "tao/AnyTypeCode/Any.h" #include "tao/PortableServer/PolicyS.h" #include "tao/PortableServer/Operation_Table_Perfect_Hash.h" #include "tao/PortableServer/Direct_Collocation_Upcall_Wrapper.h" #include "tao/PortableServer/Upcall_Command.h" #include "tao/PortableServer/Upcall_Wrapper.h" #include "tao/PortableServer/Basic_SArguments.h" #include "tao/PortableServer/Object_SArgument_T.h" #include "tao/PortableServer/Special_Basic_SArguments.h" #include "tao/PortableServer/UB_String_SArguments.h" #include "tao/PortableServer/TypeCode_SArg_Traits.h" #include "tao/PortableServer/Object_SArg_Traits.h" #include "tao/PortableServer/get_arg.h" #include "tao/Special_Basic_Arguments.h" #include "tao/UB_String_Arguments.h" #include "tao/TAO_Server_Request.h" #include "tao/ORB_Core.h" #include "tao/Profile.h" #include "tao/Stub.h" #include "tao/IFR_Client_Adapter.h" #include "tao/Object_T.h" #include "tao/CDR.h" #include "tao/operation_details.h" #include "tao/PortableInterceptor.h" #include "tao/Basic_Arguments.h" #include "tao/Object_Argument_T.h" #include "ace/Dynamic_Service.h" #include "ace/Malloc_Allocator.h" // TAO_IDL - Generated from // be\be_visitor_arg_traits.cpp:69 TAO_BEGIN_VERSIONED_NAMESPACE_DECL // Arg traits specializations. namespace TAO { #if !defined (_CORBA_POLICY__SARG_TRAITS_SS_) #define _CORBA_POLICY__SARG_TRAITS_SS_ /* template<> class SArg_Traits : public Object_SArg_Traits_T< CORBA::Policy_ptr, CORBA::Policy_var, CORBA::Policy_out, TAO::Any_Insert_Policy_Stream > { }; */ #endif /* end #if !defined */ } // TAO_IDL - Generated from // be\be_interface.cpp:1455 class TAO_CORBA_Policy_Perfect_Hash_OpTable : public TAO_Perfect_Hash_OpTable { private: unsigned int hash (const char *str, unsigned int len); public: const TAO_operation_db_entry * lookup (const char *str, unsigned int len); }; /* C++ code produced by gperf version 2.8 (ACE version) */ /* Command-line: c:\ACE\latest\ACE_wrappers\bin\gperf.exe -m -M -J -c -C -D -E -T -f 0 -F 0,0 -a -o -t -p -K opname -L C++ -Z TAO_CORBA_Policy_Perfect_Hash_OpTable -N lookup */ unsigned int TAO_CORBA_Policy_Perfect_Hash_OpTable::hash (const char *str, unsigned int len) { static const unsigned char asso_values[] = { #if defined (ACE_MVS) 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 22, 0, 0, 5, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 22, 22, 22, 22, 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, #else 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 22, 0, 22, 0, 0, 5, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 22, 22, 22, 22, 0, 22, 22, 22, 22, 22, 22, #endif /* ACE_MVS */ }; return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]]; } const TAO_operation_db_entry * TAO_CORBA_Policy_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len) { enum { TOTAL_KEYWORDS = 7, MIN_WORD_LENGTH = 4, MAX_WORD_LENGTH = 16, MIN_HASH_VALUE = 4, MAX_HASH_VALUE = 21, HASH_VALUE_RANGE = 18, DUPLICATES = 0, WORDLIST_SIZE = 11 }; static const TAO_operation_db_entry wordlist[] = { {"",0,0},{"",0,0},{"",0,0},{"",0,0}, {"copy", &POA_CORBA::Policy::copy_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::copy}, {"_is_a", &POA_CORBA::Policy::_is_a_skel, 0}, {"",0,0}, {"destroy", &POA_CORBA::Policy::destroy_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::destroy}, {"",0,0},{"",0,0}, {"_component", &POA_CORBA::Policy::_component_skel, 0}, {"",0,0},{"",0,0}, {"_non_existent", &POA_CORBA::Policy::_non_existent_skel, 0}, {"",0,0}, {"_interface", &POA_CORBA::Policy::_interface_skel, 0}, {"",0,0},{"",0,0},{"",0,0},{"",0,0},{"",0,0}, {"_get_policy_type", &POA_CORBA::Policy::_get_policy_type_skel, &POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_get_policy_type}, }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { unsigned int key = hash (str, len); if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE) { const char *s = wordlist[key].opname; if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) return &wordlist[key]; } } return 0; } static TAO_CORBA_Policy_Perfect_Hash_OpTable tao_CORBA_Policy_optable; /////////////////////////////////////////////////////////////////////// // Direct Proxy Implementation // POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_TAO_Policy_Direct_Proxy_Impl (void) {} POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::~_TAO_Policy_Direct_Proxy_Impl (void) {} // TAO_IDL - Generated from // be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::_get_policy_type ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args) { ((TAO::Arg_Traits< ::CORBA::PolicyType>::ret_val *) args[0])->arg () = dynamic_cast (servant) ->policy_type (); } // TAO_IDL - Generated from // be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::copy ( TAO_Abstract_ServantBase *servant, TAO::Argument ** args) { ((TAO::Arg_Traits< CORBA::Policy>::ret_val *) args[0])->arg () = dynamic_cast (servant) ->copy (); } // TAO_IDL - Generated from // be\be_visitor_operation/direct_proxy_impl_ss.cpp:42 void POA_CORBA::_TAO_Policy_Direct_Proxy_Impl::destroy ( TAO_Abstract_ServantBase *servant, TAO::Argument **) { dynamic_cast (servant) ->destroy (); } // // End Direct Proxy Implementation /////////////////////////////////////////////////////////////////////// // TAO_IDL - Generated from // be\be_visitor_interface/interface_ss.cpp:103 POA_CORBA::Policy::Policy (void) : TAO_ServantBase () { this->optable_ = &tao_CORBA_Policy_optable; } POA_CORBA::Policy::Policy (const Policy& rhs) : TAO_Abstract_ServantBase (rhs), TAO_ServantBase (rhs) { } POA_CORBA::Policy::~Policy (void) { } namespace POA_CORBA { // TAO_IDL - Generated from // be\be_visitor_operation/upcall_command_ss.cpp:127 class _get_policy_type_Policy : public TAO::Upcall_Command { public: inline _get_policy_type_Policy ( POA_CORBA::Policy * servant, TAO_Operation_Details const * operation_details, TAO::Argument * const args[]) : servant_ (servant) , operation_details_ (operation_details) , args_ (args) { } virtual void execute (void) { TAO::SArg_Traits< ::CORBA::PolicyType>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::CORBA::PolicyType> ( this->operation_details_, this->args_); retval = this->servant_->policy_type ( ); } private: POA_CORBA::Policy * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; } // TAO_IDL - Generated from // be\be_visitor_operation/operation_ss.cpp:192 void POA_CORBA::Policy::_get_policy_type_skel ( TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ) { #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static CORBA::ULong const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ TAO::SArg_Traits< ::CORBA::PolicyType>::ret_val retval; TAO::Argument * const args[] = { &retval }; static size_t const nargs = 1; POA_CORBA::Policy * const impl = static_cast (servant); _get_policy_type_Policy command ( impl, server_request.operation_details (), args); TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args , nargs , command #if TAO_HAS_INTERCEPTORS == 1 , servant_upcall , exceptions , nexceptions #endif /* TAO_HAS_INTERCEPTORS == 1 */ ); } namespace POA_CORBA { // TAO_IDL - Generated from // be\be_visitor_operation/upcall_command_ss.cpp:127 class copy_Policy : public TAO::Upcall_Command { public: inline copy_Policy ( POA_CORBA::Policy * servant, TAO_Operation_Details const * operation_details, TAO::Argument * const args[]) : servant_ (servant) , operation_details_ (operation_details) , args_ (args) { } virtual void execute (void) { TAO::SArg_Traits< CORBA::Policy>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< CORBA::Policy> ( this->operation_details_, this->args_); retval = this->servant_->copy ( ); } private: POA_CORBA::Policy * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; } // TAO_IDL - Generated from // be\be_visitor_operation/operation_ss.cpp:192 void POA_CORBA::Policy::copy_skel ( TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ) { #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static CORBA::ULong const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ TAO::SArg_Traits< CORBA::Policy>::ret_val retval; TAO::Argument * const args[] = { &retval }; static size_t const nargs = 1; POA_CORBA::Policy * const impl = static_cast (servant); copy_Policy command ( impl, server_request.operation_details (), args); TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args , nargs , command #if TAO_HAS_INTERCEPTORS == 1 , servant_upcall , exceptions , nexceptions #endif /* TAO_HAS_INTERCEPTORS == 1 */ ); } namespace POA_CORBA { // TAO_IDL - Generated from // be\be_visitor_operation/upcall_command_ss.cpp:127 class destroy_Policy : public TAO::Upcall_Command { public: inline destroy_Policy ( POA_CORBA::Policy * servant) : servant_ (servant) { } virtual void execute (void) { this->servant_->destroy ( ); } private: POA_CORBA::Policy * const servant_; }; } // TAO_IDL - Generated from // be\be_visitor_operation/operation_ss.cpp:192 void POA_CORBA::Policy::destroy_skel ( TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ) { #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static CORBA::ULong const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ TAO::SArg_Traits< void>::ret_val retval; TAO::Argument * const args[] = { &retval }; static size_t const nargs = 1; POA_CORBA::Policy * const impl = static_cast (servant); destroy_Policy command ( impl); TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args , nargs , command #if TAO_HAS_INTERCEPTORS == 1 , servant_upcall , exceptions , nexceptions #endif /* TAO_HAS_INTERCEPTORS == 1 */ ); } // TAO_IDL - Generated from // be\be_visitor_interface/interface_ss.cpp:169 namespace POA_CORBA { // TAO_IDL - Generated from // be\be_visitor_operation/upcall_command_ss.cpp:127 class _is_a_Policy_Upcall_Command : public TAO::Upcall_Command { public: inline _is_a_Policy_Upcall_Command ( POA_CORBA::Policy * servant, TAO_Operation_Details const * operation_details, TAO::Argument * const args[]) : servant_ (servant) , operation_details_ (operation_details) , args_ (args) { } virtual void execute (void) { TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean> ( this->operation_details_, this->args_); TAO::SArg_Traits< CORBA::Char *>::in_arg_type arg_1 = TAO::Portable_Server::get_in_arg< CORBA::Char *> ( this->operation_details_, this->args_, 1); retval = this->servant_-> _is_a ( arg_1 ); } private: POA_CORBA::Policy * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; } void POA_CORBA::Policy::_is_a_skel ( TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ) { #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static CORBA::ULong const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; TAO::SArg_Traits< CORBA::Char *>::in_arg_val _tao_repository_id; TAO::Argument * const args[] = { &retval, &_tao_repository_id }; static size_t const nargs = 2; POA_CORBA::Policy * const impl = static_cast (servant); _is_a_Policy_Upcall_Command command ( impl, server_request.operation_details (), args); TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args , nargs , command #if TAO_HAS_INTERCEPTORS == 1 , servant_upcall , exceptions , nexceptions #endif /* TAO_HAS_INTERCEPTORS == 1 */ ); } namespace POA_CORBA { // TAO_IDL - Generated from // be\be_visitor_operation/upcall_command_ss.cpp:127 class _non_existent_Policy_Upcall_Command : public TAO::Upcall_Command { public: inline _non_existent_Policy_Upcall_Command ( POA_CORBA::Policy * servant, TAO_Operation_Details const * operation_details, TAO::Argument * const args[]) : servant_ (servant) , operation_details_ (operation_details) , args_ (args) { } virtual void execute (void) { TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::ACE_InputCDR::to_boolean> ( this->operation_details_, this->args_); retval = this->servant_-> _non_existent ( ); } private: POA_CORBA::Policy * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; } void POA_CORBA::Policy::_non_existent_skel ( TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ) { #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static CORBA::ULong const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ TAO::SArg_Traits< ::ACE_InputCDR::to_boolean>::ret_val retval; TAO::Argument * const args[] = { &retval }; static size_t const nargs = 1; POA_CORBA::Policy * const impl = static_cast (servant); _non_existent_Policy_Upcall_Command command ( impl, server_request.operation_details (), args); TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args , nargs , command #if TAO_HAS_INTERCEPTORS == 1 , servant_upcall , exceptions , nexceptions #endif /* TAO_HAS_INTERCEPTORS == 1 */ ); } // TAO_IDL - Generated from // be\be_visitor_interface/interface_ss.cpp:393 void POA_CORBA::Policy::_interface_skel ( TAO_ServerRequest & server_request, void * /* servant_upcall */, void * servant ) { TAO_IFR_Client_Adapter *_tao_adapter = ACE_Dynamic_Service::instance ( TAO_ORB_Core::ifr_client_adapter_name () ); if (_tao_adapter == 0) { throw ::CORBA::INTF_REPOS (CORBA::OMGVMCID | 1, CORBA::COMPLETED_NO); } POA_CORBA::Policy * const impl = static_cast (servant); CORBA::InterfaceDef_ptr _tao_retval = impl->_get_interface (); server_request.init_reply (); TAO_OutputCDR &_tao_out = *server_request.outgoing (); CORBA::Boolean const _tao_result = _tao_adapter->interfacedef_cdr_insert ( _tao_out, _tao_retval ); _tao_adapter->dispose (_tao_retval); if (_tao_result == 0) { throw ::CORBA::MARSHAL (); } } namespace POA_CORBA { // TAO_IDL - Generated from // be\be_visitor_operation/upcall_command_ss.cpp:127 class _get_component_Policy_Upcall_Command : public TAO::Upcall_Command { public: inline _get_component_Policy_Upcall_Command ( POA_CORBA::Policy * servant, TAO_Operation_Details const * operation_details, TAO::Argument * const args[]) : servant_ (servant) , operation_details_ (operation_details) , args_ (args) { } virtual void execute (void) { TAO::SArg_Traits< ::CORBA::Object>::ret_arg_type retval = TAO::Portable_Server::get_ret_arg< ::CORBA::Object> ( this->operation_details_, this->args_); retval = this->servant_-> _get_component ( ); } private: POA_CORBA::Policy * const servant_; TAO_Operation_Details const * const operation_details_; TAO::Argument * const * const args_; }; } void POA_CORBA::Policy::_component_skel ( TAO_ServerRequest & server_request, void * TAO_INTERCEPTOR (servant_upcall), void * servant ) { #if TAO_HAS_INTERCEPTORS == 1 static CORBA::TypeCode_ptr const * const exceptions = 0; static CORBA::ULong const nexceptions = 0; #endif /* TAO_HAS_INTERCEPTORS */ TAO::SArg_Traits< ::CORBA::Object>::ret_val retval; TAO::Argument * const args[] = { &retval }; static size_t const nargs = 1; POA_CORBA::Policy * const impl = static_cast (servant); _get_component_Policy_Upcall_Command command ( impl, server_request.operation_details (), args); TAO::Upcall_Wrapper upcall_wrapper; upcall_wrapper.upcall (server_request , args , nargs , command #if TAO_HAS_INTERCEPTORS == 1 , servant_upcall , exceptions , nexceptions #endif /* TAO_HAS_INTERCEPTORS == 1 */ ); } CORBA::Boolean POA_CORBA::Policy::_is_a ( const char* value ) { return ( !ACE_OS::strcmp ( value, "IDL:omg.org/CORBA/Policy:1.0" ) || !ACE_OS::strcmp ( value, "IDL:omg.org/CORBA/Object:1.0" ) ); } const char* POA_CORBA::Policy::_interface_repository_id (void) const { return "IDL:omg.org/CORBA/Policy:1.0"; } // TAO_IDL - Generated from // be\be_visitor_interface/interface_ss.cpp:940 void POA_CORBA::Policy::_dispatch ( TAO_ServerRequest & req, void * servant_upcall ) { this->synchronous_upcall_dispatch (req, servant_upcall, this ); } // TAO_IDL - Generated from // be\be_visitor_interface/interface_ss.cpp:891 CORBA::Policy * POA_CORBA::Policy::_this (void) { TAO_Stub *stub = this->_create_stub (); TAO_Stub_Auto_Ptr safe_stub (stub); CORBA::Object_ptr tmp = CORBA::Object::_nil (); CORBA::Boolean _tao_opt_colloc = stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects (); ACE_NEW_RETURN ( tmp, CORBA::Object (stub, _tao_opt_colloc, this), 0 ); CORBA::Object_var obj = tmp; (void) safe_stub.release (); typedef ::CORBA::Policy STUB_SCOPED_NAME; return TAO::Narrow_Utils::unchecked_narrow ( obj.in ()); } #endif /* ifndef */ TAO_END_VERSIONED_NAMESPACE_DECL