⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exampleinterfacess.cpp

📁 C++实现的CORBA分布式程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// -*- 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:631#ifndef _TAO_IDL_EXAMPLEINTERFACESS_CPP_#define _TAO_IDL_EXAMPLEINTERFACESS_CPP_#include "ExampleInterfacesS.h"#include "tao/PortableServer/Object_Adapter.h"#include "tao/PortableServer/Operation_Table.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/Typecode.h"#include "tao/DynamicC.h"#include "tao/Basic_Arguments.h"#include "tao/PortableInterceptor.h"#if TAO_HAS_INTERCEPTORS == 1#include "tao/RequestInfo_Util.h"#include "tao/PortableServer/PICurrent_Guard.h"#include "tao/PortableServer/ServerRequestInfo.h"#include "tao/PortableServer/ServerInterceptorAdapter.h"#endif  /* TAO_HAS_INTERCEPTORS == 1 */#include "ace/Dynamic_Service.h"#include "ace/Malloc_Allocator.h"#include "ace/config-all.h"#if defined (__BORLANDC__)#pragma option -w-rvl -w-rch -w-ccc -w-aus#endif /* __BORLANDC__ */#if !defined (__ACE_INLINE__)#include "ExampleInterfacesS.i"#endif /* !defined INLINE */// TAO_IDL - Generated from// be/be_visitor_arg_traits.cpp:64// Arg traits specializations.namespace TAO{}// TAO_IDL - Generated from// be/be_interface.cpp:1534class TAO_ExampleInterfaces_IAdder_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: /opt/ACE/bin/gperf -m -M -J -c -C -D -E -T -f 0 -F 0,0,0 -a -o -t -p -K opname_ -L C++ -Z TAO_ExampleInterfaces_IAdder_Perfect_Hash_OpTable -N lookup  */unsigned intTAO_ExampleInterfaces_IAdder_Perfect_Hash_OpTable::hash (const char *str, unsigned int len){  static const unsigned char asso_values[] =    {#if defined (ACE_MVS)     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16,  0,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16,  0,     16, 16,  0,  5, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16,  0, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16,#else     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16,  0, 16,  0, 16, 16,      0,  5, 16, 16, 16, 16, 16, 16, 16, 16,     16, 16, 16, 16, 16, 16,  0, 16, 16, 16,     16, 16, 16, 16, 16, 16, 16, 16,#endif /* ACE_MVS */    };  return len + asso_values[(int) str[len - 1]] + asso_values[(int) str[0]];}const class TAO_operation_db_entry *TAO_ExampleInterfaces_IAdder_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len){  enum    {      TOTAL_KEYWORDS = 5,      MIN_WORD_LENGTH = 3,      MAX_WORD_LENGTH = 13,      MIN_HASH_VALUE = 3,      MAX_HASH_VALUE = 15,      HASH_VALUE_RANGE = 13,      DUPLICATES = 0,      WORDLIST_SIZE = 8    };  static const class TAO_operation_db_entry  wordlist[] =    {      {"",0,0,0},{"",0,0,0},{"",0,0,0},      {"add", &POA_ExampleInterfaces::IAdder::add_skel, &POA_ExampleInterfaces::_TAO_IAdder_ThruPOA_Proxy_Impl::add, 0},      {"",0,0,0},      {"_is_a", &POA_ExampleInterfaces::IAdder::_is_a_skel, 0, 0},      {"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},      {"_component", &POA_ExampleInterfaces::IAdder::_component_skel, 0, 0},      {"",0,0,0},{"",0,0,0},      {"_non_existent", &POA_ExampleInterfaces::IAdder::_non_existent_skel, 0, 0},      {"",0,0,0},      {"_interface", &POA_ExampleInterfaces::IAdder::_interface_skel, 0, 0},    };  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_ExampleInterfaces_IAdder_Perfect_Hash_OpTable tao_ExampleInterfaces_IAdder_optable;// TAO_IDL - Generated from// be/be_visitor_interface/interceptors_ss.cpp:53#if (TAO_HAS_INTERCEPTORS == 1)// TAO_IDL - Generated from// be/be_visitor_operation/interceptors_ss.cpp:74class TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add : public TAO_ServerRequestInfo{public:  TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add (      TAO_ServerRequest &_tao_server_request,      TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall,      POA_ExampleInterfaces::IAdder *tao_impl,      const CORBA::Double & arg1,      const CORBA::Double & arg2    );    virtual Dynamic::ParameterList * arguments (      ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    )    ACE_THROW_SPEC ((CORBA::SystemException));    virtual Dynamic::ExceptionList * exceptions (      ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    )    ACE_THROW_SPEC ((CORBA::SystemException));    virtual CORBA::Any * result (      ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    )    ACE_THROW_SPEC ((CORBA::SystemException));    virtual char * target_most_derived_interface (      ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS    )    ACE_THROW_SPEC ((CORBA::SystemException));    virtual CORBA::Boolean target_is_a (      const char * id      ACE_ENV_ARG_DECL_WITH_DEFAULTS    )    ACE_THROW_SPEC ((CORBA::SystemException));    void result (CORBA::Double result);private:  TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add (      const TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add &    );    void operator= (      const TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add &    );  private:  POA_ExampleInterfaces::IAdder *_tao_impl;    const CORBA::Double & arg1_;  const CORBA::Double & arg2_;  CORBA::Double _result;};// TAO_IDL - Generated from// be/be_visitor_operation/interceptors_ss.cpp:438TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add::TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add (    TAO_ServerRequest &_tao_server_request,    TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall,    POA_ExampleInterfaces::IAdder *tao_impl,    const CORBA::Double & arg1,    const CORBA::Double & arg2  )  : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall),    _tao_impl (tao_impl),    arg1_ (arg1),    arg2_ (arg2){}Dynamic::ParameterList *TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add::arguments (    ACE_ENV_SINGLE_ARG_DECL  )  ACE_THROW_SPEC ((CORBA::SystemException)){  // Generate the argument list on demand.  Dynamic::ParameterList *parameter_list =    TAO_RequestInfo_Util::make_parameter_list (ACE_ENV_SINGLE_ARG_PARAMETER);  ACE_CHECK_RETURN (0);    Dynamic::ParameterList_var safe_parameter_list = parameter_list;  parameter_list->length (2);  CORBA::ULong len = 0;    (*parameter_list)[len].argument <<= arg1_;  (*parameter_list)[len].mode = CORBA::PARAM_IN;  len++;    (*parameter_list)[len].argument <<= arg2_;  (*parameter_list)[len].mode = CORBA::PARAM_IN;  len++;    return safe_parameter_list._retn ();}Dynamic::ExceptionList *TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add::exceptions (    ACE_ENV_SINGLE_ARG_DECL  )  ACE_THROW_SPEC ((CORBA::SystemException)){  // Generate the exception list on demand.  Dynamic::ExceptionList *exception_list =    TAO_RequestInfo_Util::make_exception_list (ACE_ENV_SINGLE_ARG_PARAMETER);  ACE_CHECK_RETURN (0);    return exception_list;}CORBA::Any * TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add::result (    ACE_ENV_SINGLE_ARG_DECL  )  ACE_THROW_SPEC ((CORBA::SystemException)){  // Generate the result on demand.  CORBA::Boolean tk_void_any = 0;  CORBA::Any *result_any =    TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER);  ACE_CHECK_RETURN (0);    CORBA::Any_var safe_result_any = result_any;    (*result_any) <<= this->_result;    return safe_result_any._retn ();}char *TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add::target_most_derived_interface (    ACE_ENV_SINGLE_ARG_DECL_NOT_USED  )  ACE_THROW_SPEC ((CORBA::SystemException)){  return    CORBA::string_dup (this->_tao_impl->_interface_repository_id ());}CORBA::BooleanTAO_ServerRequestInfo_ExampleInterfaces_IAdder_add::target_is_a (    const char * id    ACE_ENV_ARG_DECL  )  ACE_THROW_SPEC ((CORBA::SystemException)){  return this->_tao_impl->_is_a (id ACE_ENV_ARG_PARAMETER);}void TAO_ServerRequestInfo_ExampleInterfaces_IAdder_add::result (CORBA::Double result){  // Update the result.   this->_result = result;}#endif /* TAO_HAS_INTERCEPTORS *//////////////////////////////////////////////////////////////////////////            Strategized Proxy Broker Implementation//// TAO_IDL - Generated from// be/be_visitor_interface/strategized_proxy_broker_ss.cpp:40// Factory function Implementation.POA_ExampleInterfaces::_TAO_IAdder_Strategized_Proxy_Broker *POA_ExampleInterfaces::_TAO_IAdder_Strategized_Proxy_Broker::the_TAO_IAdder_Strategized_Proxy_Broker (void){  static POA_ExampleInterfaces::_TAO_IAdder_Strategized_Proxy_Broker  strategized_proxy_broker;    return &strategized_proxy_broker;}POA_ExampleInterfaces::_TAO_IAdder_Strategized_Proxy_Broker::_TAO_IAdder_Strategized_Proxy_Broker (void){}POA_ExampleInterfaces::_TAO_IAdder_Strategized_Proxy_Broker::~_TAO_IAdder_Strategized_Proxy_Broker (void){}TAO::Collocation_StrategyPOA_ExampleInterfaces::_TAO_IAdder_Strategized_Proxy_Broker::get_strategy (    CORBA::Object_ptr obj    ACE_ENV_ARG_DECL  )  ACE_THROW_SPEC ((CORBA::SystemException)){  TAO::Collocation_Strategy strategy =    TAO_ORB_Core::collocation_strategy (obj ACE_ENV_ARG_PARAMETER);  ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY);    return strategy;}voidPOA_ExampleInterfaces::_TAO_IAdder_Strategized_Proxy_Broker::dispatch (    CORBA::Object_ptr obj,    CORBA::Object_out forward_obj,    TAO::Argument ** args,    int num_args,    const char * op,    size_t op_len,    TAO::Collocation_Strategy strategy    ACE_ENV_ARG_DECL  )  ACE_THROW_SPEC ((CORBA::Exception)){  TAO_Object_Adapter::Servant_Upcall servant_upcall (      obj->_stubobj ()->servant_orb_var ()->orb_core ()    );    TAO_Collocated_Skeleton collocated_skel;  TAO_Abstract_ServantBase *servant = 0;    if (strategy == TAO::TAO_CS_THRU_POA_STRATEGY)    {      servant_upcall.prepare_for_upcall (          obj->_stubobj ()->object_key (),          op,          forward_obj          ACE_ENV_ARG_PARAMETER        );      ACE_CHECK;            servant_upcall.pre_invoke_collocated_request (          ACE_ENV_SINGLE_ARG_PARAMETER        );      ACE_CHECK;            servant = servant_upcall.servant ();    }  else    {      servant = obj->_servant ();    }    int status = servant->_find (op,                               collocated_skel,                               strategy,                               op_len);    if (status == -1)    {      ACE_THROW (CORBA::BAD_OPERATION ());    }    ACE_TRY    {      collocated_skel (servant,                       args,                       num_args                       ACE_ENV_ARG_PARAMETER);      ACE_TRY_CHECK;    }#if (TAO_HAS_MINIMUM_CORBA == 0)  ACE_CATCH (PortableServer::ForwardRequest, forward_request)    {      forward_obj =        CORBA::Object::_duplicate (forward_request.forward_reference.in ());      return;    }#else  ACE_CATCHANY    {      ACE_UNUSED_ARG (forward_obj);      ACE_RE_THROW;    }#endif /* TAO_HAS_MINIMUM_CORBA */  ACE_ENDTRY;  ACE_CHECK;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -