summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableServer/ServerObjectS.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PortableServer/ServerObjectS.cpp')
-rw-r--r--TAO/tao/PortableServer/ServerObjectS.cpp1201
1 files changed, 1201 insertions, 0 deletions
diff --git a/TAO/tao/PortableServer/ServerObjectS.cpp b/TAO/tao/PortableServer/ServerObjectS.cpp
new file mode 100644
index 00000000000..d9fd6bd5281
--- /dev/null
+++ b/TAO/tao/PortableServer/ServerObjectS.cpp
@@ -0,0 +1,1201 @@
+// -*- 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:609
+
+#ifndef _TAO_IDL_ORIG_SERVEROBJECTS_CPP_
+#define _TAO_IDL_ORIG_SERVEROBJECTS_CPP_
+
+
+#include "ServerObjectS.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/CDR.h"
+#include "tao/Basic_Arguments.h"
+#include "tao/PortableInterceptor.h"
+#if TAO_HAS_INTERCEPTORS == 1
+#include "tao/PortableServer/PICurrent_Guard.h"
+#include "tao/PortableServer/ServerRequestInfo.h"
+#include "tao/PortableServer/ServerInterceptorAdapter.h"
+#include "tao/RequestInfo_Util.h"
+#endif /* TAO_HAS_INTERCEPTORS == 1 */
+
+#include "ace/Dynamic_Service.h"
+#include "ace/Malloc_Allocator.h"
+
+#if defined (__BORLANDC__)
+#pragma option -w-rvl -w-rch -w-ccc -w-aus
+#endif /* __BORLANDC__ */
+
+#if !defined (__ACE_INLINE__)
+#include "ServerObjectS.inl"
+#endif /* !defined INLINE */
+
+// TAO_IDL - Generated from
+// be\be_visitor_arg_traits.cpp:65
+
+// Arg traits specializations.
+namespace TAO
+{
+}
+
+
+// TAO_IDL - Generated from
+// be\be_interface.cpp:1536
+
+class TAO_ImplementationRepository_ServerObject_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,0 -a -o -t -p -K opname_ -L C++ -Z TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable -N lookup */
+unsigned int
+TAO_ImplementationRepository_ServerObject_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, 16, 5, 16, 0, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 0,
+ 16, 0, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 0, 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,
+ 16, 5, 16, 0, 16, 16, 16, 16, 16, 16,
+ 0, 16, 0, 16, 16, 0, 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_ImplementationRepository_ServerObject_Perfect_Hash_OpTable::lookup (const char *str, unsigned int len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 6,
+ MIN_WORD_LENGTH = 4,
+ MAX_WORD_LENGTH = 13,
+ MIN_HASH_VALUE = 4,
+ MAX_HASH_VALUE = 15,
+ HASH_VALUE_RANGE = 12,
+ DUPLICATES = 0,
+ WORDLIST_SIZE = 10
+ };
+
+ static const class TAO_operation_db_entry wordlist[] =
+ {
+ {"",0,0,0},{"",0,0,0},{"",0,0,0},{"",0,0,0},
+ {"ping", &POA_ImplementationRepository::ServerObject::ping_skel, &POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::ping, &POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::ping},
+ {"_is_a", &POA_ImplementationRepository::ServerObject::_is_a_skel, 0, 0},
+ {"",0,0,0},{"",0,0,0},
+ {"shutdown", &POA_ImplementationRepository::ServerObject::shutdown_skel, &POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::shutdown, &POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::shutdown},
+ {"",0,0,0},
+ {"_component", &POA_ImplementationRepository::ServerObject::_component_skel, 0, 0},
+ {"",0,0,0},{"",0,0,0},
+ {"_non_existent", &POA_ImplementationRepository::ServerObject::_non_existent_skel, 0, 0},
+ {"",0,0,0},
+ {"_interface", &POA_ImplementationRepository::ServerObject::_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_ImplementationRepository_ServerObject_Perfect_Hash_OpTable tao_ImplementationRepository_ServerObject_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:74
+
+class TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping : public TAO_ServerRequestInfo
+{
+public:
+ TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping (
+ TAO_ServerRequest &_tao_server_request,
+ TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall,
+ POA_ImplementationRepository::ServerObject *tao_impl
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS
+ );
+
+ 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));
+
+private:
+ TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping (
+ const TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping &
+ );
+
+ void operator= (
+ const TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping &
+ );
+
+private:
+ POA_ImplementationRepository::ServerObject *_tao_impl;
+
+};
+
+// TAO_IDL - Generated from
+// be\be_visitor_operation/interceptors_ss.cpp:438
+
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping (
+ TAO_ServerRequest &_tao_server_request,
+ TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall,
+ POA_ImplementationRepository::ServerObject *tao_impl
+ ACE_ENV_ARG_DECL_NOT_USED
+ )
+ : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall),
+ _tao_impl (tao_impl)
+{}
+
+Dynamic::ParameterList *
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::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);
+
+ return parameter_list;
+}
+
+Dynamic::ExceptionList *
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::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_ImplementationRepository_ServerObject_ping::result (
+ ACE_ENV_SINGLE_ARG_DECL
+ )
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the result on demand.
+ CORBA::Boolean tk_void_any = 1;
+ CORBA::Any *result_any =
+ TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
+}
+
+char *
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::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::Boolean
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::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);
+}
+
+// TAO_IDL - Generated from
+// be\be_visitor_operation/interceptors_ss.cpp:74
+
+class TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown : public TAO_ServerRequestInfo
+{
+public:
+ TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown (
+ TAO_ServerRequest &_tao_server_request,
+ TAO_Object_Adapter::Servant_Upcall *tao_servant_upcall,
+ POA_ImplementationRepository::ServerObject *tao_impl
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS
+ );
+
+ 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));
+
+private:
+ TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown (
+ const TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown &
+ );
+
+ void operator= (
+ const TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown &
+ );
+
+private:
+ POA_ImplementationRepository::ServerObject *_tao_impl;
+
+};
+
+// TAO_IDL - Generated from
+// be\be_visitor_operation/interceptors_ss.cpp:438
+
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown (
+ TAO_ServerRequest &_tao_server_request,
+ TAO_Object_Adapter::Servant_Upcall *_tao_servant_upcall,
+ POA_ImplementationRepository::ServerObject *tao_impl
+ ACE_ENV_ARG_DECL_NOT_USED
+ )
+ : TAO_ServerRequestInfo (_tao_server_request, _tao_servant_upcall),
+ _tao_impl (tao_impl)
+{}
+
+Dynamic::ParameterList *
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::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);
+
+ return parameter_list;
+}
+
+Dynamic::ExceptionList *
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::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_ImplementationRepository_ServerObject_shutdown::result (
+ ACE_ENV_SINGLE_ARG_DECL
+ )
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the result on demand.
+ CORBA::Boolean tk_void_any = 1;
+ CORBA::Any *result_any =
+ TAO_RequestInfo_Util::make_any (tk_void_any ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
+}
+
+char *
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::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::Boolean
+TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::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);
+}
+
+#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_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker *
+POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::the_TAO_ServerObject_Strategized_Proxy_Broker (void)
+{
+ static POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker
+ strategized_proxy_broker;
+
+ return &strategized_proxy_broker;
+}
+
+POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::_TAO_ServerObject_Strategized_Proxy_Broker (void)
+{
+}
+
+POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::~_TAO_ServerObject_Strategized_Proxy_Broker (void)
+{
+}
+
+TAO::Collocation_Strategy
+POA_ImplementationRepository::_TAO_ServerObject_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;
+}
+
+void
+POA_ImplementationRepository::_TAO_ServerObject_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 (TAO::VMCID | 2, CORBA::COMPLETED_NO));
+ }
+
+ 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;
+}
+
+//
+// End Strategized Proxy Broker Implementation
+///////////////////////////////////////////////////////////////////////
+
+// TAO_IDL - Generated from
+// be\be_visitor_interface/interface_ss.cpp:640
+
+TAO::Collocation_Proxy_Broker *
+ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function (CORBA::Object_ptr)
+{
+ return
+ ::POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::the_TAO_ServerObject_Strategized_Proxy_Broker ();
+}
+
+int
+ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer (size_t)
+{
+ ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer =
+ ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function;
+
+ return 0;
+}
+
+static int
+ImplementationRepository__TAO_ServerObject_Proxy_Broker_Stub_Factory_Initializer_Scarecrow =
+ ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer (
+ reinterpret_cast<
+ size_t> (
+ ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer
+ )
+ );
+
+
+///////////////////////////////////////////////////////////////////////
+// ThruPOA Proxy Implementation
+//
+
+// TAO_IDL - Generated from
+// be\be_visitor_interface/thru_poa_proxy_impl_ss.cpp:37
+
+POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::_TAO_ServerObject_ThruPOA_Proxy_Impl (void)
+{}
+
+// ThruPOA Implementation of the IDL interface methods
+
+// TAO_IDL - Generated from
+// be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52
+
+void
+POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::ping (
+ TAO_Abstract_ServantBase *servant,
+ TAO::Argument **,
+ int
+ ACE_ENV_ARG_DECL
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ reinterpret_cast<
+ POA_ImplementationRepository::ServerObject_ptr> (
+ servant->_downcast (
+ "IDL:ImplementationRepository/ServerObject:1.0"
+ )
+ )->ping (
+ ACE_ENV_SINGLE_ARG_PARAMETER
+ );
+ ACE_CHECK;
+}
+
+// TAO_IDL - Generated from
+// be\be_visitor_operation/thru_poa_proxy_impl_ss.cpp:52
+
+void
+POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::shutdown (
+ TAO_Abstract_ServantBase *servant,
+ TAO::Argument **,
+ int
+ ACE_ENV_ARG_DECL
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ reinterpret_cast<
+ POA_ImplementationRepository::ServerObject_ptr> (
+ servant->_downcast (
+ "IDL:ImplementationRepository/ServerObject:1.0"
+ )
+ )->shutdown (
+ ACE_ENV_SINGLE_ARG_PARAMETER
+ );
+ ACE_CHECK;
+}
+
+//
+// End ThruPOA Proxy Implementation
+///////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////
+// Direct Proxy Implementation
+//
+
+POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::_TAO_ServerObject_Direct_Proxy_Impl (void)
+{}
+
+// TAO_IDL - Generated from
+// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42
+
+void
+POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::ping (
+ TAO_Abstract_ServantBase *servant,
+ TAO::Argument **,
+ int
+ ACE_ENV_ARG_DECL
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ reinterpret_cast<
+ POA_ImplementationRepository::ServerObject_ptr> (
+ servant->_downcast (
+ "IDL:ImplementationRepository/ServerObject:1.0"
+ )
+ )->ping (
+ ACE_ENV_SINGLE_ARG_PARAMETER
+ );
+ ACE_CHECK;
+}// TAO_IDL - Generated from
+// be\be_visitor_operation/direct_proxy_impl_ss.cpp:42
+
+void
+POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::shutdown (
+ TAO_Abstract_ServantBase *servant,
+ TAO::Argument **,
+ int
+ ACE_ENV_ARG_DECL
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ reinterpret_cast<
+ POA_ImplementationRepository::ServerObject_ptr> (
+ servant->_downcast (
+ "IDL:ImplementationRepository/ServerObject:1.0"
+ )
+ )->shutdown (
+ ACE_ENV_SINGLE_ARG_PARAMETER
+ );
+ ACE_CHECK;
+}
+
+//
+// End Direct Proxy Implementation
+///////////////////////////////////////////////////////////////////////
+
+// TAO_IDL - Generated from
+// be\be_visitor_interface/interface_ss.cpp:97
+
+POA_ImplementationRepository::ServerObject::ServerObject (void)
+{
+ this->optable_ = &tao_ImplementationRepository_ServerObject_optable;
+}
+
+POA_ImplementationRepository::ServerObject::ServerObject (const ServerObject& rhs)
+ : TAO_Abstract_ServantBase (rhs),
+ TAO_ServantBase (rhs)
+{
+}
+
+POA_ImplementationRepository::ServerObject::~ServerObject (void)
+{
+}
+
+// TAO_IDL - Generated from
+// be\be_visitor_operation/operation_ss.cpp:98
+
+void POA_ImplementationRepository::ServerObject::ping_skel (
+ TAO_ServerRequest &_tao_server_request,
+ void *_tao_servant,
+ void *_tao_servant_upcall
+ ACE_ENV_ARG_DECL
+ )
+{
+ POA_ImplementationRepository::ServerObject *_tao_impl =
+ static_cast<
+ POA_ImplementationRepository::ServerObject *> (
+ _tao_servant
+ );
+ _tao_server_request.argument_flag (0);
+
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_Object_Adapter::Servant_Upcall *_tao_upcall =
+ static_cast<
+ TAO_Object_Adapter::Servant_Upcall *> (
+ _tao_servant_upcall
+ );
+
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping _tao_ri (
+ _tao_server_request,
+ _tao_upcall,
+ _tao_impl
+ ACE_ENV_ARG_PARAMETER
+ );
+
+ ACE_TRY
+ {
+ {
+ TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (),
+ true /* Copy TSC to RSC */);
+
+ _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (!_tao_vfr.location_forwarded ())
+ {
+#endif /* TAO_HAS_INTERCEPTORS */
+
+ _tao_impl->ping (
+ ACE_ENV_SINGLE_ARG_PARAMETER
+ );
+ TAO_INTERCEPTOR_CHECK;
+#if (TAO_HAS_INTERCEPTORS == 1)
+ }
+ }
+
+ if (!_tao_vfr.location_forwarded ())
+ {
+ _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ }
+ ACE_CATCHANY
+ {
+ _tao_ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &_tao_ri
+ ACE_ENV_ARG_PARAMETER
+ );
+ ACE_TRY_CHECK;
+
+ PortableInterceptor::ReplyStatus _tao_status =
+ _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION
+ || _tao_status == PortableInterceptor::USER_EXCEPTION)
+ {
+ ACE_RE_THROW;
+ }
+ }
+
+# if defined (ACE_HAS_EXCEPTIONS) \
+ && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS)
+ ACE_CATCHALL
+ {
+ CORBA::UNKNOWN ex;
+
+ _tao_ri.exception (&ex);
+ _tao_vfr.send_exception (
+ &_tao_ri
+ ACE_ENV_ARG_PARAMETER
+ );
+ ACE_TRY_CHECK;
+
+ PortableInterceptor::ReplyStatus _tao_status =
+ _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION)
+ ACE_TRY_THROW (ex);
+ }
+# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
+
+ _tao_server_request.init_reply ();
+
+ // In case _tao_servant_upcall is not used in this function
+ ACE_UNUSED_ARG (_tao_servant_upcall);
+}
+
+// TAO_IDL - Generated from
+// be\be_visitor_operation/operation_ss.cpp:98
+
+void POA_ImplementationRepository::ServerObject::shutdown_skel (
+ TAO_ServerRequest &_tao_server_request,
+ void *_tao_servant,
+ void *_tao_servant_upcall
+ ACE_ENV_ARG_DECL
+ )
+{
+ POA_ImplementationRepository::ServerObject *_tao_impl =
+ static_cast<
+ POA_ImplementationRepository::ServerObject *> (
+ _tao_servant
+ );
+ _tao_server_request.argument_flag (0);
+
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_Object_Adapter::Servant_Upcall *_tao_upcall =
+ static_cast<
+ TAO_Object_Adapter::Servant_Upcall *> (
+ _tao_servant_upcall
+ );
+
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown _tao_ri (
+ _tao_server_request,
+ _tao_upcall,
+ _tao_impl
+ ACE_ENV_ARG_PARAMETER
+ );
+
+ ACE_TRY
+ {
+ {
+ TAO::PICurrent_Guard _tao_pi_guard (_tao_ri.server_request (),
+ true /* Copy TSC to RSC */);
+
+ _tao_vfr.receive_request (&_tao_ri ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (!_tao_vfr.location_forwarded ())
+ {
+#endif /* TAO_HAS_INTERCEPTORS */
+
+ _tao_impl->shutdown (
+ ACE_ENV_SINGLE_ARG_PARAMETER
+ );
+ TAO_INTERCEPTOR_CHECK;
+#if (TAO_HAS_INTERCEPTORS == 1)
+ }
+ }
+
+ if (!_tao_vfr.location_forwarded ())
+ {
+ _tao_ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&_tao_ri ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ }
+ ACE_CATCHANY
+ {
+ _tao_ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &_tao_ri
+ ACE_ENV_ARG_PARAMETER
+ );
+ ACE_TRY_CHECK;
+
+ PortableInterceptor::ReplyStatus _tao_status =
+ _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION
+ || _tao_status == PortableInterceptor::USER_EXCEPTION)
+ {
+ ACE_RE_THROW;
+ }
+ }
+
+# if defined (ACE_HAS_EXCEPTIONS) \
+ && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS)
+ ACE_CATCHALL
+ {
+ CORBA::UNKNOWN ex;
+
+ _tao_ri.exception (&ex);
+ _tao_vfr.send_exception (
+ &_tao_ri
+ ACE_ENV_ARG_PARAMETER
+ );
+ ACE_TRY_CHECK;
+
+ PortableInterceptor::ReplyStatus _tao_status =
+ _tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION)
+ ACE_TRY_THROW (ex);
+ }
+# endif /* ACE_HAS_EXCEPTIONS && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
+
+ _tao_server_request.init_reply ();
+
+ // In case _tao_servant_upcall is not used in this function
+ ACE_UNUSED_ARG (_tao_servant_upcall);
+}
+
+// TAO_IDL - Generated from
+// be\be_visitor_interface/interface_ss.cpp:162
+
+void POA_ImplementationRepository::ServerObject::_is_a_skel (
+ TAO_ServerRequest &_tao_server_request,
+ void * _tao_servant,
+ void * /* Servant_Upcall */
+ ACE_ENV_ARG_DECL
+ )
+{
+ TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
+
+ POA_ImplementationRepository::ServerObject *_tao_impl =
+ static_cast<POA_ImplementationRepository::ServerObject *> (_tao_servant);
+
+ CORBA::Boolean _tao_retval = 0;
+ CORBA::String_var value;
+
+ if (!(_tao_in >> value.out ()))
+ {
+ ACE_THROW (CORBA::MARSHAL ());
+ }
+
+ _tao_retval = _tao_impl->_is_a (value.in () ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ _tao_server_request.init_reply ();
+ TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
+ if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
+ {
+ ACE_THROW (CORBA::MARSHAL ());
+ }
+}
+
+void POA_ImplementationRepository::ServerObject::_non_existent_skel (
+ TAO_ServerRequest &_tao_server_request,
+ void * _tao_servant,
+ void * /* Servant_Upcall */
+ ACE_ENV_ARG_DECL
+ )
+{
+ POA_ImplementationRepository::ServerObject *_tao_impl =
+ static_cast<POA_ImplementationRepository::ServerObject *> (_tao_servant);
+
+ CORBA::Boolean _tao_retval =
+ _tao_impl->_non_existent (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ _tao_server_request.init_reply ();
+ TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
+ if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
+ {
+ ACE_THROW (CORBA::MARSHAL ());
+ }
+}
+
+void POA_ImplementationRepository::ServerObject::_interface_skel (
+ TAO_ServerRequest &_tao_server_request,
+ void * _tao_servant,
+ void * /* Servant_Upcall */
+ ACE_ENV_ARG_DECL
+ )
+{
+ TAO_IFR_Client_Adapter *_tao_adapter =
+ ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance (
+ TAO_ORB_Core::ifr_client_adapter_name ()
+ );
+
+ if (_tao_adapter == 0)
+ {
+ ACE_THROW (CORBA::INTF_REPOS ());
+ }
+
+ POA_ImplementationRepository::ServerObject *_tao_impl =
+ static_cast<POA_ImplementationRepository::ServerObject *> (_tao_servant);
+
+ CORBA::InterfaceDef_ptr _tao_retval =
+ _tao_impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ _tao_server_request.init_reply ();
+ TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
+ CORBA::Boolean _tao_result =
+ _tao_adapter->interfacedef_cdr_insert (
+ _tao_out,
+ _tao_retval
+ );
+
+ _tao_adapter->dispose (_tao_retval);
+
+ if (_tao_result == 0)
+ {
+ ACE_THROW (CORBA::MARSHAL ());
+ }
+}
+
+void POA_ImplementationRepository::ServerObject::_component_skel (
+ TAO_ServerRequest &_tao_server_request,
+ void * _tao_object_reference,
+ void * /* Servant_Upcall */
+ ACE_ENV_ARG_DECL
+ )
+{
+ POA_ImplementationRepository::ServerObject *_tao_impl =
+ static_cast<POA_ImplementationRepository::ServerObject *> (_tao_object_reference);
+
+ CORBA::Object_var _tao_retval =
+ _tao_impl->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ _tao_server_request.init_reply ();
+ TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
+ if (!(_tao_out << _tao_retval.in ()))
+ {
+ ACE_THROW (CORBA::MARSHAL ());
+ }
+}
+
+CORBA::Boolean POA_ImplementationRepository::ServerObject::_is_a (
+ const char* value
+ ACE_ENV_ARG_DECL_NOT_USED
+ )
+{
+ return
+ (
+ !ACE_OS::strcmp (
+ value,
+ "IDL:ImplementationRepository/ServerObject:1.0"
+ ) ||
+ !ACE_OS::strcmp (
+ value,
+ "IDL:omg.org/CORBA/Object:1.0"
+ )
+ );
+}
+
+void* POA_ImplementationRepository::ServerObject::_downcast (
+ const char* logical_type_id
+ )
+{
+ if (ACE_OS::strcmp (logical_type_id,
+ "IDL:ImplementationRepository/ServerObject:1.0") == 0)
+ {
+ return static_cast<POA_ImplementationRepository::ServerObject_ptr> (this);
+ }
+
+ if (ACE_OS::strcmp (logical_type_id,
+ "IDL:omg.org/CORBA/Object:1.0") == 0)
+ {
+ return static_cast<PortableServer::Servant> (this);
+ }
+
+ return 0;
+}
+
+const char* POA_ImplementationRepository::ServerObject::_interface_repository_id (void) const
+{
+ return "IDL:ImplementationRepository/ServerObject:1.0";
+}
+
+// TAO_IDL - Generated from
+// be\be_visitor_interface/interface_ss.cpp:576
+
+void POA_ImplementationRepository::ServerObject::_dispatch (
+ TAO_ServerRequest &req,
+ void *servant_upcall
+ ACE_ENV_ARG_DECL
+ )
+{
+ this->synchronous_upcall_dispatch (req,
+ servant_upcall,
+ this
+ ACE_ENV_ARG_PARAMETER);
+}
+
+// TAO_IDL - Generated from
+// be\be_visitor_interface/interface_ss.cpp:527
+
+ImplementationRepository::ServerObject *
+POA_ImplementationRepository::ServerObject::_this (ACE_ENV_SINGLE_ARG_DECL)
+{
+ TAO_Stub *stub = this->_create_stub (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+
+ 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 ::ImplementationRepository::ServerObject STUB_SCOPED_NAME;
+ return
+ TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (
+ obj.in (),
+ ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer
+ );
+}
+
+// TAO_IDL - Generated from
+// be\be_visitor_root/root.cpp:1683
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
+
+#endif /* ifndef */
+