summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableServer/ImplRepoS.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PortableServer/ImplRepoS.cpp')
-rw-r--r--TAO/tao/PortableServer/ImplRepoS.cpp4016
1 files changed, 3166 insertions, 850 deletions
diff --git a/TAO/tao/PortableServer/ImplRepoS.cpp b/TAO/tao/PortableServer/ImplRepoS.cpp
index 78f31f56a83..d790fced7bf 100644
--- a/TAO/tao/PortableServer/ImplRepoS.cpp
+++ b/TAO/tao/PortableServer/ImplRepoS.cpp
@@ -1,18 +1,44 @@
-/* -*- C++ -*- $Id$ */
-
-// ****** Code generated by the The ACE ORB (TAO) IDL Compiler *******
-// TAO and the TAO IDL Compiler have been developed by the Center for
-// Distributed Object Computing at Washington University, St. Louis.
+// -*- 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/
//
// Information about TAO is available at:
-// http://www.cs.wustl.edu/~schmidt/TAO.html
+// http://www.cs.wustl.edu/~schmidt/TAO.html
+
+#ifndef _TAO_IDL_ORIG_IMPLREPOS_CPP_
+#define _TAO_IDL_ORIG_IMPLREPOS_CPP_
#include "ImplRepoS.h"
-#include "Operation_Table.h"
-#include "Object_Adapter.h"
-#include "tao/Stub.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/Stub.h"
+#include "tao/IFR_Client_Adapter.h"
+#include "tao/PortableInterceptor.h"
+#include "ace/Dynamic_Service.h"
+
+#if TAO_HAS_INTERCEPTORS == 1
+#include "tao/RequestInfo_Util.h"
+#endif /* TAO_HAS_INTERCEPTORS == 1 */
+
+#if defined (__BORLANDC__)
+#pragma option -w-rvl -w-rch -w-ccc -w-aus
+#endif /* __BORLANDC__ */
#if !defined (__ACE_INLINE__)
#include "ImplRepoS.i"
@@ -25,9 +51,9 @@ private:
public:
const TAO_operation_db_entry * lookup (const char *str, unsigned int len);
};
-/* starting time is 12:16:37 */
+/* starting time is 16:33:09 */
/* C++ code produced by gperf version 2.8 (ACE version) */
-/* Command-line: /home/coryan/subsets/ACE_wrappers/build/Linux/bin/gperf -m -M -J -c -C -D -E -T -f 0 -F 0 -a -o -t -p -K opname_ -L C++ -Z TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable -N lookup */
+/* Command-line: /project/sirion/coryan/head/ACE_wrappers/build/Linux/bin/gperf -m -M -J -c -C -D -E -T -f 0 -F 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)
{
@@ -47,7 +73,7 @@ TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable::hash (const char
14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 14, 14, 14, 14, 14, 0, 14, 14, 14, 14,
+ 14, 14, 14, 0, 14, 0, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
14, 0, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 0, 0, 14, 14, 14, 14, 14, 14,
@@ -71,7 +97,7 @@ TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable::hash (const char
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 0, 14, 0, 14, 14,
- 14, 14, 14, 0, 14, 14, 14, 14, 14, 14,
+ 14, 0, 14, 0, 14, 14, 14, 14, 14, 14,
0, 14, 0, 14, 14, 0, 0, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14,
#endif /* ACE_MVS */
@@ -84,7 +110,7 @@ TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable::lookup (const ch
{
enum
{
- TOTAL_KEYWORDS = 4,
+ TOTAL_KEYWORDS = 5,
MIN_WORD_LENGTH = 4,
MAX_WORD_LENGTH = 13,
MIN_HASH_VALUE = 4,
@@ -100,7 +126,9 @@ TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable::lookup (const ch
{"_is_a", &POA_ImplementationRepository::ServerObject::_is_a_skel},
{"",0},{"",0},
{"shutdown", &POA_ImplementationRepository::ServerObject::shutdown_skel},
- {"",0},{"",0},{"",0},{"",0},
+ {"",0},
+ {"_interface", &POA_ImplementationRepository::ServerObject::_interface_skel},
+ {"",0},{"",0},
{"_non_existent", &POA_ImplementationRepository::ServerObject::_non_existent_skel},
};
@@ -118,48 +146,246 @@ TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable::lookup (const ch
}
return 0;
}
-/* ending time is 12:16:37 */
+/* ending time is 16:33:09 */
static TAO_ImplementationRepository_ServerObject_Perfect_Hash_OpTable tao_ImplementationRepository_ServerObject_optable;
-ImplementationRepository::ServerObject_ptr _TAO_collocation_POA_ImplementationRepository_ServerObject_Stub_Factory (
- CORBA::Object_ptr obj
+
+///////////////////////////////////////////////////////////////////////
+// Strategized Proxy Broker Implementation
+//
+
+// 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)
+{
+ for (int i = 0; i < TAO_Collocation_Strategies::CS_LAST; ++i)
+ this->proxy_cache_[i] = 0;
+
+}
+
+POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::~_TAO_ServerObject_Strategized_Proxy_Broker (void)
+{
+ for (int i = 0; i < TAO_Collocation_Strategies::CS_LAST; ++i)
+ delete this->proxy_cache_[i];
+
+}
+
+ImplementationRepository::_TAO_ServerObject_Proxy_Impl&
+POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::select_proxy (
+ ::ImplementationRepository::ServerObject *object,
+ CORBA::Environment &ACE_TRY_ENV
)
{
- TAO_Stub *stub = obj->_stubobj ();
+ int strategy =
+ TAO_ORB_Core::collocation_strategy (object);
+
+ if (this->proxy_cache_[strategy] != 0)
+ return *this->proxy_cache_[strategy];
+
+ this->create_proxy (strategy, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (*this->proxy_cache_[strategy]);
+
+ return *this->proxy_cache_[strategy];
+
+}
- switch (stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ())
+void
+POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::create_proxy (
+ int strategy,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+{
+ ACE_GUARD (TAO_SYNCH_MUTEX, guard, this->mutex_);
+
+ if (this->proxy_cache_[strategy] == 0)
{
- case TAO_ORB_Core::THRU_POA:
- {
- ImplementationRepository::ServerObject_ptr retval = 0;
- ACE_NEW_RETURN (
- retval,
- POA_ImplementationRepository::_tao_thru_poa_collocated_ServerObject (stub),
- 0
- );
- return retval;
+ switch (strategy)
+ {
+ case TAO_Collocation_Strategies::CS_THRU_POA_STRATEGY:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
+ case TAO_Collocation_Strategies::CS_DIRECT_STRATEGY:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
+ case TAO_Collocation_Strategies::CS_REMOTE_STRATEGY:
+ default:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ ::ImplementationRepository::_TAO_ServerObject_Remote_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
}
- case TAO_ORB_Core::DIRECT:
- break;
- default:
- break;
- }
- return 0;
+
+ }
}
-int _TAO_collocation_POA_ImplementationRepository_ServerObject_Stub_Factory_Initializer (long dummy)
+
+//
+// End Strategized Proxy Broker Implementation
+///////////////////////////////////////////////////////////////////////
+
+
+ImplementationRepository::_TAO_ServerObject_Proxy_Broker *
+ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function (CORBA::Object_ptr obj)
{
- ACE_UNUSED_ARG (dummy);
+ ACE_UNUSED_ARG (obj);
+ return ::POA_ImplementationRepository::_TAO_ServerObject_Strategized_Proxy_Broker::the_TAO_ServerObject_Strategized_Proxy_Broker();
+}
+
+int
+ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer (long _dummy_)
+{
+ ACE_UNUSED_ARG (_dummy_);
- _TAO_collocation_ImplementationRepository_ServerObject_Stub_Factory_function_pointer =
- _TAO_collocation_POA_ImplementationRepository_ServerObject_Stub_Factory;
+ ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function_pointer =
+ ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_function;
return 0;
}
-static int _TAO_collocation_POA_ImplementationRepository_ServerObject_Stub_Factory_Initializer_Scarecrow =
- _TAO_collocation_POA_ImplementationRepository_ServerObject_Stub_Factory_Initializer (ACE_reinterpret_cast (long, _TAO_collocation_POA_ImplementationRepository_ServerObject_Stub_Factory_Initializer));
+static int ImplementationRepository__TAO_ServerObject_Proxy_Broker_Stub_Factory_Initializer_Scarecrow =
+ ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer (ACE_reinterpret_cast (long, ImplementationRepository__TAO_ServerObject_Proxy_Broker_Factory_Initializer));
+
+
+///////////////////////////////////////////////////////////////////////
+// ThruPOA Proxy Implementation
+//
+
+POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::_TAO_ServerObject_ThruPOA_Proxy_Impl (void)
+{}
+
+// ThruPOA Implementation of the IDL interface methods
+void POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::ping (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "ping",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::ServerObject_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/ServerObject:1.0"
+ )
+ )->ping (
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+void POA_ImplementationRepository::_TAO_ServerObject_ThruPOA_Proxy_Impl::shutdown (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "shutdown",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::ServerObject_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/ServerObject:1.0"
+ )
+ )->shutdown (
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+//
+// End ThruPOA Proxy Implementation
+///////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////
+// Direct Proxy Implementation
+//
+
+POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::_TAO_ServerObject_Direct_Proxy_Impl (void)
+{}
+
+void POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::ping (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::ServerObject_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/ServerObject:1.0")
+ )->ping (
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_ServerObject_Direct_Proxy_Impl::shutdown (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::ServerObject_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/ServerObject:1.0")
+ )->shutdown (
+ ACE_TRY_ENV
+ );
+
+}
+
+
+//
+// End Direct Proxy Implementation
+///////////////////////////////////////////////////////////////////////
// skeleton constructor
POA_ImplementationRepository::ServerObject::ServerObject (void)
{
@@ -181,37 +407,140 @@ void POA_ImplementationRepository::ServerObject::ping_skel (
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
- POA_ImplementationRepository::ServerObject *_tao_impl =
- (POA_ImplementationRepository::ServerObject *)_tao_object_reference;
+ POA_ImplementationRepository::ServerObject *_tao_impl = (POA_ImplementationRepository::ServerObject *)_tao_object_reference;
- _tao_impl->ping (
+ _tao_server_request.argument_flag (0);
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping ri (
+ _tao_server_request,
+ _tao_impl,
ACE_TRY_ENV
);
- ACE_CHECK;
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
+
+ _tao_impl->ping (
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::ServerObject::shutdown_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
POA_ImplementationRepository::ServerObject *_tao_impl = (POA_ImplementationRepository::ServerObject *)_tao_object_reference;
+
+ _tao_server_request.argument_flag (0);
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown ri (
+ _tao_server_request,
+ _tao_impl,
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
+
_tao_impl->shutdown (
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
-
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::ServerObject::_is_a_skel (
TAO_ServerRequest &_tao_server_request,
@@ -224,7 +553,7 @@ void POA_ImplementationRepository::ServerObject::_is_a_skel (
POA_ImplementationRepository::ServerObject *_tao_impl = (POA_ImplementationRepository::ServerObject *) _tao_object_reference;
CORBA::Boolean _tao_retval = 0;
CORBA::String_var value;
- if (!((_tao_in >> value.out ())))
+ if (!(_tao_in >> value.out ()))
ACE_THROW (CORBA::MARSHAL ());
_tao_retval = _tao_impl->_is_a (value.in (), ACE_TRY_ENV);
@@ -232,7 +561,7 @@ void POA_ImplementationRepository::ServerObject::_is_a_skel (
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
- if (!((_tao_out << CORBA::Any::from_boolean (_tao_retval))))
+ if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
ACE_THROW (CORBA::MARSHAL ());
}
@@ -249,18 +578,69 @@ void POA_ImplementationRepository::ServerObject::_non_existent_skel (
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
- if (!((_tao_out << CORBA::Any::from_boolean (_tao_retval))))
+ 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_object_reference,
+ void * /* context */,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+{
+ POA_ImplementationRepository::ServerObject *_tao_impl = (POA_ImplementationRepository::ServerObject *) _tao_object_reference;
+ CORBA_InterfaceDef_ptr _tao_retval = 0;
+ CORBA::Boolean _tao_result = 0;
+
+ 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 ());
+ }
+
+ ACE_TRY
+ {
+ _tao_retval = _tao_impl->_get_interface (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ _tao_server_request.init_reply ();
+
+ TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
+ _tao_result =
+ _tao_adapter->interfacedef_cdr_insert (
+ _tao_out,
+ _tao_retval
+ );
+ }
+ ACE_CATCHALL
+ {
+ _tao_adapter->dispose (_tao_retval);
+ }
+ ACE_ENDTRY;
+
+ if (_tao_result == 0)
+ {
+ ACE_THROW (CORBA::MARSHAL ());
+ }
+}
+
CORBA::Boolean POA_ImplementationRepository::ServerObject::_is_a (
const char* value,
CORBA::Environment &ACE_TRY_ENV
)
{
+ const char *base_id = CORBA::_tc_Object->id (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
if (
(!ACE_OS::strcmp ((char *)value, "IDL:ImplementationRepository/ServerObject:1.0")) ||
- (!ACE_OS::strcmp ((char *)value, CORBA::_tc_Object->id (ACE_TRY_ENV))))
+ (!ACE_OS::strcmp ((char *)value, base_id)))
return 1;
else
return 0;
@@ -270,9 +650,9 @@ void* POA_ImplementationRepository::ServerObject::_downcast (
const char* logical_type_id
)
{
-if (ACE_OS::strcmp (logical_type_id, "IDL:ImplementationRepository/ServerObject:1.0") == 0)
+ if (ACE_OS::strcmp (logical_type_id, "IDL:ImplementationRepository/ServerObject:1.0") == 0)
return ACE_static_cast (POA_ImplementationRepository::ServerObject_ptr, this);
- if (ACE_OS::strcmp (logical_type_id, "IDL:omg.org/CORBA/Object:1.0") == 0)
+ if (ACE_OS::strcmp (logical_type_id, "IDL:omg.org/CORBA/Object:1.0") == 0)
return ACE_static_cast(PortableServer::Servant, this);
return 0;
}
@@ -292,152 +672,149 @@ POA_ImplementationRepository::ServerObject::_this (CORBA_Environment &ACE_TRY_EN
{
TAO_Stub *stub = this->_create_stub (ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
+
+ CORBA::Object_ptr tmp = CORBA::Object::_nil ();
+
if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ())
- switch (stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ())
- {
- case TAO_ORB_Core::THRU_POA:
- {
- ::ImplementationRepository::ServerObject_ptr retval = 0;
- ACE_NEW_RETURN (
- retval,
- POA_ImplementationRepository::_tao_thru_poa_collocated_ServerObject (stub),
- 0
- );
- return retval;
- }
- case TAO_ORB_Core::DIRECT:
- ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
- default:
- ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
- }
+ ACE_NEW_RETURN (tmp, CORBA::Object (stub, 1, this), 0);
else
- {
- // stub->_incr_refcnt ();
- CORBA::Object_ptr tmp = CORBA::Object::_nil ();
- ACE_NEW_RETURN (tmp, CORBA::Object (stub), 0);
- CORBA::Object_var obj = tmp;
- return ::ImplementationRepository::ServerObject::_unchecked_narrow (obj.in ());
- }
-}
+ ACE_NEW_RETURN (tmp, CORBA::Object (stub, 0, this), 0);
-POA_ImplementationRepository::_tao_thru_poa_collocated_ServerObject::_tao_thru_poa_collocated_ServerObject (
- TAO_Stub *stub
-)
- : CORBA_Object (stub, 1)
-{
+ CORBA::Object_var obj = tmp;
+ return ::ImplementationRepository::ServerObject::_unchecked_narrow (obj.in ());
}
-CORBA::Boolean POA_ImplementationRepository::_tao_thru_poa_collocated_ServerObject::_is_a(
- const CORBA::Char *logical_type_id,
- CORBA_Environment &ACE_TRY_ENV
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::ServerObject *tao_impl,
+ CORBA::Environment &
)
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl)
+{}
+Dynamic::ParameterList *
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "_is_a",
- forward_to.out (),
- ACE_TRY_ENV
- );
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
- return ACE_reinterpret_cast (
- POA_ImplementationRepository::ServerObject_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/ServerObject:1.0"
- )
- )->_is_a (logical_type_id, ACE_TRY_ENV);
+
+ return parameter_list;
}
+Dynamic::ExceptionList *
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
-CORBA::Boolean POA_ImplementationRepository::_tao_thru_poa_collocated_ServerObject::_non_existent(
- CORBA_Environment &ACE_TRY_ENV
- )
+ return exception_list;
+}
+CORBA::Any *
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::result (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "_non_existent",
- forward_to.out (),
- ACE_TRY_ENV
- );
+ // Generate the result on demand.
+ CORBA::Boolean tk_void_any = 1;
+ CORBA::Any *result_any =
+ TAO_RequestInfo_Util::make_any (tk_void_any, ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
- return ACE_reinterpret_cast (
- POA_ImplementationRepository::ServerObject_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/ServerObject:1.0"
- )
- )->_non_existent (ACE_TRY_ENV);
+
+ return result_any;
}
+char *
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_ServerObject::ping (
- CORBA::Environment &ACE_TRY_ENV
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+CORBA::Boolean
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_ping::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "ping",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::ServerObject_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/ServerObject:1.0"
- )
- )->ping (
- ACE_TRY_ENV
- );
- return;
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_ServerObject::shutdown (
- CORBA::Environment &ACE_TRY_ENV
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::ServerObject *tao_impl,
+ CORBA::Environment &
)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "shutdown",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::ServerObject_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/ServerObject:1.0"
- )
- )->shutdown (
- ACE_TRY_ENV
- );
- return;
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return parameter_list;
+}
+
+Dynamic::ExceptionList *
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return exception_list;
}
+CORBA::Any *
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
+}
+
+char *
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
+CORBA::Boolean
+POA_ImplementationRepository::ServerObject::TAO_ServerRequestInfo_ImplementationRepository_ServerObject_shutdown::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+#endif /* TAO_HAS_INTERCEPTORS */
class TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable : public TAO_Perfect_Hash_OpTable
{
private:
@@ -445,55 +822,55 @@ private:
public:
const TAO_operation_db_entry * lookup (const char *str, unsigned int len);
};
-/* starting time is 12:16:37 */
+/* starting time is 16:33:09 */
/* C++ code produced by gperf version 2.8 (ACE version) */
-/* Command-line: /home/coryan/subsets/ACE_wrappers/build/Linux/bin/gperf -m -M -J -c -C -D -E -T -f 0 -F 0 -a -o -t -p -K opname_ -L C++ -Z TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable -N lookup */
+/* Command-line: /project/sirion/coryan/head/ACE_wrappers/build/Linux/bin/gperf -m -M -J -c -C -D -E -T -f 0 -F 0 -a -o -t -p -K opname_ -L C++ -Z TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable -N lookup */
unsigned int
TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable::hash (const char *str, unsigned int len)
{
static const unsigned char asso_values[] =
{
#if defined (ACE_MVS)
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 15,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 10,
- 34, 34, 5, 34, 0, 0, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 0, 34, 5,
- 34, 34, 34, 0, 34, 34, 34, 34, 34, 34,
- 34, 34, 5, 0, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 0,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 4,
+ 29, 29, 0, 0, 0, 0, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 5, 29, 0,
+ 29, 29, 29, 0, 29, 29, 29, 29, 29, 29,
+ 29, 29, 5, 5, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29,
#else
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 34, 15, 34, 10, 34, 34,
- 5, 34, 0, 0, 34, 34, 34, 34, 0, 34,
- 5, 34, 34, 34, 0, 5, 0, 34, 34, 34,
- 34, 34, 34, 34, 34, 34, 34, 34,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 0, 29, 4, 29, 29,
+ 0, 0, 0, 0, 29, 29, 29, 29, 5, 29,
+ 0, 29, 29, 29, 0, 5, 5, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29,
#endif /* ACE_MVS */
};
return len + asso_values[str[len - 1]] + asso_values[str[0]];
@@ -504,38 +881,34 @@ TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable::lookup (const
{
enum
{
- TOTAL_KEYWORDS = 11,
+ TOTAL_KEYWORDS = 12,
MIN_WORD_LENGTH = 4,
MAX_WORD_LENGTH = 23,
MIN_HASH_VALUE = 4,
- MAX_HASH_VALUE = 33,
- HASH_VALUE_RANGE = 30,
+ MAX_HASH_VALUE = 28,
+ HASH_VALUE_RANGE = 25,
DUPLICATES = 0
};
static const class TAO_operation_db_entry wordlist[] =
{
{"",0},{"",0},{"",0},{"",0},
- {"list", &POA_ImplementationRepository::Administration::list_skel},
- {"",0},{"",0},{"",0},{"",0},
{"find", &POA_ImplementationRepository::Administration::find_skel},
- {"",0},{"",0},{"",0},
+ {"",0},{"",0},{"",0},{"",0},
+ {"_is_a", &POA_ImplementationRepository::Administration::_is_a_skel},
+ {"_interface", &POA_ImplementationRepository::Administration::_interface_skel},
+ {"",0},{"",0},
{"remove_server", &POA_ImplementationRepository::Administration::remove_server_skel},
- {"",0},
+ {"list", &POA_ImplementationRepository::Administration::list_skel},
{"register_server", &POA_ImplementationRepository::Administration::register_server_skel},
{"",0},
{"reregister_server", &POA_ImplementationRepository::Administration::reregister_server_skel},
- {"",0},{"",0},
+ {"_non_existent", &POA_ImplementationRepository::Administration::_non_existent_skel},
+ {"activate_server", &POA_ImplementationRepository::Administration::activate_server_skel},
{"shutdown_server", &POA_ImplementationRepository::Administration::shutdown_server_skel},
{"",0},
{"server_is_running", &POA_ImplementationRepository::Administration::server_is_running_skel},
- {"",0},{"",0},
- {"activate_server", &POA_ImplementationRepository::Administration::activate_server_skel},
- {"",0},{"",0},
- {"_non_existent", &POA_ImplementationRepository::Administration::_non_existent_skel},
- {"",0},
- {"_is_a", &POA_ImplementationRepository::Administration::_is_a_skel},
- {"",0},{"",0},
+ {"",0},{"",0},{"",0},{"",0},{"",0},
{"server_is_shutting_down", &POA_ImplementationRepository::Administration::server_is_shutting_down_skel},
};
@@ -553,48 +926,656 @@ TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable::lookup (const
}
return 0;
}
-/* ending time is 12:16:37 */
+/* ending time is 16:33:09 */
static TAO_ImplementationRepository_Administration_Perfect_Hash_OpTable tao_ImplementationRepository_Administration_optable;
-ImplementationRepository::Administration_ptr _TAO_collocation_POA_ImplementationRepository_Administration_Stub_Factory (
- CORBA::Object_ptr obj
+
+///////////////////////////////////////////////////////////////////////
+// Strategized Proxy Broker Implementation
+//
+
+// Factory function Implementation.
+POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker *POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::the_TAO_Administration_Strategized_Proxy_Broker (void)
+{
+ static POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker strategized_proxy_broker;
+ return &strategized_proxy_broker;
+}
+
+POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::_TAO_Administration_Strategized_Proxy_Broker (void)
+{
+ for (int i = 0; i < TAO_Collocation_Strategies::CS_LAST; ++i)
+ this->proxy_cache_[i] = 0;
+
+}
+
+POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::~_TAO_Administration_Strategized_Proxy_Broker (void)
+{
+ for (int i = 0; i < TAO_Collocation_Strategies::CS_LAST; ++i)
+ delete this->proxy_cache_[i];
+
+}
+
+ImplementationRepository::_TAO_Administration_Proxy_Impl&
+POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::select_proxy (
+ ::ImplementationRepository::Administration *object,
+ CORBA::Environment &ACE_TRY_ENV
)
{
- TAO_Stub *stub = obj->_stubobj ();
+ int strategy =
+ TAO_ORB_Core::collocation_strategy (object);
+
+ if (this->proxy_cache_[strategy] != 0)
+ return *this->proxy_cache_[strategy];
- switch (stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ())
+ this->create_proxy (strategy, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (*this->proxy_cache_[strategy]);
+
+ return *this->proxy_cache_[strategy];
+
+}
+
+void
+POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::create_proxy (
+ int strategy,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+{
+ ACE_GUARD (TAO_SYNCH_MUTEX, guard, this->mutex_);
+
+ if (this->proxy_cache_[strategy] == 0)
{
- case TAO_ORB_Core::THRU_POA:
- {
- ImplementationRepository::Administration_ptr retval = 0;
- ACE_NEW_RETURN (
- retval,
- POA_ImplementationRepository::_tao_thru_poa_collocated_Administration (stub),
- 0
- );
- return retval;
+ switch (strategy)
+ {
+ case TAO_Collocation_Strategies::CS_THRU_POA_STRATEGY:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
+ case TAO_Collocation_Strategies::CS_DIRECT_STRATEGY:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
+ case TAO_Collocation_Strategies::CS_REMOTE_STRATEGY:
+ default:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ ::ImplementationRepository::_TAO_Administration_Remote_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
}
- case TAO_ORB_Core::DIRECT:
- break;
- default:
- break;
- }
- return 0;
+
+ }
+}
+
+
+//
+// End Strategized Proxy Broker Implementation
+///////////////////////////////////////////////////////////////////////
+
+
+ImplementationRepository::_TAO_Administration_Proxy_Broker *
+ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function (CORBA::Object_ptr obj)
+{
+ ACE_UNUSED_ARG (obj);
+ return ::POA_ImplementationRepository::_TAO_Administration_Strategized_Proxy_Broker::the_TAO_Administration_Strategized_Proxy_Broker();
}
-int _TAO_collocation_POA_ImplementationRepository_Administration_Stub_Factory_Initializer (long dummy)
+int
+ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_Initializer (long _dummy_)
{
- ACE_UNUSED_ARG (dummy);
+ ACE_UNUSED_ARG (_dummy_);
- _TAO_collocation_ImplementationRepository_Administration_Stub_Factory_function_pointer =
- _TAO_collocation_POA_ImplementationRepository_Administration_Stub_Factory;
+ ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function_pointer =
+ ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_function;
return 0;
}
-static int _TAO_collocation_POA_ImplementationRepository_Administration_Stub_Factory_Initializer_Scarecrow =
- _TAO_collocation_POA_ImplementationRepository_Administration_Stub_Factory_Initializer (ACE_reinterpret_cast (long, _TAO_collocation_POA_ImplementationRepository_Administration_Stub_Factory_Initializer));
+static int ImplementationRepository__TAO_Administration_Proxy_Broker_Stub_Factory_Initializer_Scarecrow =
+ ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_Initializer (ACE_reinterpret_cast (long, ImplementationRepository__TAO_Administration_Proxy_Broker_Factory_Initializer));
+
+
+///////////////////////////////////////////////////////////////////////
+// ThruPOA Proxy Implementation
+//
+
+POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::_TAO_Administration_ThruPOA_Proxy_Impl (void)
+{}
+
+// ThruPOA Implementation of the IDL interface methods
+
+void POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::activate_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound,
+ ImplementationRepository::Administration::CannotActivate
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "activate_server",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->activate_server (
+ server,
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+void POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::register_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ const ImplementationRepository::StartupOptions & options,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::AlreadyRegistered
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "register_server",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->register_server (
+ server,
+ options,
+ ACE_TRY_ENV
+ );
+ return;
+}
+void POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::reregister_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ const ImplementationRepository::StartupOptions & options,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "reregister_server",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->reregister_server (
+ server,
+ options,
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+void POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::remove_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "remove_server",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->remove_server (
+ server,
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+void POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::shutdown_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "shutdown_server",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->shutdown_server (
+ server,
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+char * POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::server_is_running (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ const char * addr,
+ ImplementationRepository::ServerObject_ptr server_object,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ CORBA::String_var _tao_retval;
+ ACE_UNUSED_ARG (_tao_retval);
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "server_is_running",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK_RETURN (0);
+ return ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->server_is_running (
+ server,
+ addr,
+ server_object,
+ ACE_TRY_ENV
+ );
+}
+
+void POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::server_is_shutting_down (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "server_is_shutting_down",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->server_is_shutting_down (
+ server,
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+void POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::find (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ ImplementationRepository::ServerInformation_out info,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "find",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->find (
+ server,
+ info,
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+void POA_ImplementationRepository::_TAO_Administration_ThruPOA_Proxy_Impl::list (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::ULong how_many,
+ ImplementationRepository::ServerInformationList_out server_list,
+ ImplementationRepository::ServerInformationIterator_out server_iterator,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "list",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/Administration:1.0"
+ )
+ )->list (
+ how_many,
+ server_list,
+ server_iterator,
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+//
+// End ThruPOA Proxy Implementation
+///////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////
+// Direct Proxy Implementation
+//
+
+POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::_TAO_Administration_Direct_Proxy_Impl (void)
+{}
+
+void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::activate_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound,
+ ImplementationRepository::Administration::CannotActivate
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->activate_server (
+ server,
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::register_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ const ImplementationRepository::StartupOptions & options,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::AlreadyRegistered
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->register_server (
+ server,
+ options,
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::reregister_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ const ImplementationRepository::StartupOptions & options,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->reregister_server (
+ server,
+ options,
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::remove_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->remove_server (
+ server,
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::shutdown_server (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->shutdown_server (
+ server,
+ ACE_TRY_ENV
+ );
+
+}
+
+char * POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_running (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ const char * addr,
+ ImplementationRepository::ServerObject_ptr server_object,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ return ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->server_is_running (
+ server,
+ addr,
+ server_object,
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::server_is_shutting_down (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->server_is_shutting_down (
+ server,
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::find (
+ CORBA_Object *_collocated_tao_target_,
+ const char * server,
+ ImplementationRepository::ServerInformation_out info,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ ImplementationRepository::Administration::NotFound
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->find (
+ server,
+ info,
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_Administration_Direct_Proxy_Impl::list (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::ULong how_many,
+ ImplementationRepository::ServerInformationList_out server_list,
+ ImplementationRepository::ServerInformationIterator_out server_iterator,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::Administration_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/Administration:1.0")
+ )->list (
+ how_many,
+ server_list,
+ server_iterator,
+ ACE_TRY_ENV
+ );
+
+}
+
+
+//
+// End Direct Proxy Implementation
+///////////////////////////////////////////////////////////////////////
// skeleton constructor
POA_ImplementationRepository::Administration::Administration (void)
{
@@ -616,154 +1597,415 @@ void POA_ImplementationRepository::Administration::activate_server_skel (
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::String_var server;
+ _tao_server_request.argument_flag (0);
+ CORBA::String_var server;
if (!(
(_tao_in >> server.out ())
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
+
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server ri (
+ _tao_server_request,
+ _tao_impl,
+ server.in (),
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_impl->activate_server (
- server.in (),
+ server.in (),
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::Administration::register_server_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::String_var server;
+ _tao_server_request.argument_flag (0);
+ CORBA::String_var server;
ImplementationRepository::StartupOptions options;
if (!(
(_tao_in >> server.out ()) &&
(_tao_in >> options)
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server ri (
+ _tao_server_request,
+ _tao_impl,
+ server.in (),
+ options,
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
+
_tao_impl->register_server (
- server.in (),
- options,
+ server.in (),
+ options,
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
-
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::Administration::reregister_server_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::String_var server;
+ _tao_server_request.argument_flag (0);
+ CORBA::String_var server;
ImplementationRepository::StartupOptions options;
if (!(
(_tao_in >> server.out ()) &&
(_tao_in >> options)
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
+
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server ri (
+ _tao_server_request,
+ _tao_impl,
+ server.in (),
+ options,
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_impl->reregister_server (
- server.in (),
- options,
+ server.in (),
+ options,
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::Administration::remove_server_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::String_var server;
+ _tao_server_request.argument_flag (0);
+ CORBA::String_var server;
if (!(
(_tao_in >> server.out ())
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
+
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server ri (
+ _tao_server_request,
+ _tao_impl,
+ server.in (),
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_impl->remove_server (
- server.in (),
+ server.in (),
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
-
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::Administration::shutdown_server_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::String_var server;
+ _tao_server_request.argument_flag (0);
+ CORBA::String_var server;
if (!(
(_tao_in >> server.out ())
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
+
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server ri (
+ _tao_server_request,
+ _tao_impl,
+ server.in (),
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_impl->shutdown_server (
- server.in (),
+ server.in (),
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
-
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::Administration::server_is_running_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::String_var _tao_retval;
+ CORBA::String_var _tao_retval;
CORBA::String_var server;
CORBA::String_var addr;
ImplementationRepository::ServerObject_var server_object;
@@ -772,26 +2014,82 @@ void POA_ImplementationRepository::Administration::server_is_running_skel (
(_tao_in >> addr.out ()) &&
(_tao_in >> server_object.out ())
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
- _tao_retval = _tao_impl->server_is_running (
- server.in (),
- addr.in (),
- server_object.in (),
- ACE_TRY_ENV
- );
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
- ACE_CHECK;
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running ri (
+ _tao_server_request,
+ _tao_impl,
+ server.in (),
+ addr.in (),
+ server_object.in (),
+ ACE_TRY_ENV
+ );
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
+ _tao_retval =
+ _tao_impl->server_is_running (
+ server.in (),
+ addr.in (),
+ server_object.in (),
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ char * _tao_retval_info = _tao_retval._retn ();
+ ri.result (_tao_retval_info);
+ _tao_retval = _tao_retval_info;
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
+
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
if (!(
- (_tao_out << _tao_retval.in ())
- ))
- ACE_THROW (CORBA::MARSHAL () );
+ (_tao_out << _tao_retval.in ())
+ ))
+ ACE_THROW (CORBA::MARSHAL());
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
}
void POA_ImplementationRepository::Administration::server_is_shutting_down_skel (
@@ -799,62 +2097,165 @@ void POA_ImplementationRepository::Administration::server_is_shutting_down_skel
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::String_var server;
+ _tao_server_request.argument_flag (0);
+ CORBA::String_var server;
if (!(
(_tao_in >> server.out ())
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
+
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down ri (
+ _tao_server_request,
+ _tao_impl,
+ server.in (),
+ ACE_TRY_ENV
+ );
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_impl->server_is_shutting_down (
- server.in (),
+ server.in (),
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::Administration::find_skel (
TAO_ServerRequest &_tao_server_request,
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::String_var server;
+ CORBA::String_var server;
ImplementationRepository::ServerInformation_var info;
if (!(
(_tao_in >> server.out ())
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_find ri (
+ _tao_server_request,
+ _tao_impl,
+ server.in (),
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_impl->find (
- server.in (),
- info.out (),
+ server.in (),
+ info.out (),
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
-
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
+
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
if (!(
- (_tao_out << info.in ())
- ))
- ACE_THROW (CORBA::MARSHAL () );
+ (_tao_out << info.in ())
+ ))
+ ACE_THROW (CORBA::MARSHAL());
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
}
void POA_ImplementationRepository::Administration::list_skel (
@@ -862,38 +2263,90 @@ void POA_ImplementationRepository::Administration::list_skel (
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *)_tao_object_reference;
- CORBA::ULong how_many;
+ CORBA::ULong how_many;
ImplementationRepository::ServerInformationList_var server_list;
ImplementationRepository::ServerInformationIterator_var server_iterator;
if (!(
(_tao_in >> how_many)
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_list ri (
+ _tao_server_request,
+ _tao_impl,
+ how_many
+,
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
+
_tao_impl->list (
- how_many,
- server_list.out (),
- server_iterator.out (),
+ how_many,
+ server_list.out (),
+ server_iterator.out (),
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
-
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
+
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
if (!(
- (_tao_out << server_list.in ()) &&
- (_tao_out << server_iterator.in ())
- ))
- ACE_THROW (CORBA::MARSHAL () );
+ (_tao_out << server_list.in ()) &&
+ (_tao_out << server_iterator.in ())
+ ))
+ ACE_THROW (CORBA::MARSHAL());
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
}
void POA_ImplementationRepository::Administration::_is_a_skel (
@@ -907,7 +2360,7 @@ void POA_ImplementationRepository::Administration::_is_a_skel (
POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *) _tao_object_reference;
CORBA::Boolean _tao_retval = 0;
CORBA::String_var value;
- if (!((_tao_in >> value.out ())))
+ if (!(_tao_in >> value.out ()))
ACE_THROW (CORBA::MARSHAL ());
_tao_retval = _tao_impl->_is_a (value.in (), ACE_TRY_ENV);
@@ -915,7 +2368,7 @@ void POA_ImplementationRepository::Administration::_is_a_skel (
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
- if (!((_tao_out << CORBA::Any::from_boolean (_tao_retval))))
+ if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
ACE_THROW (CORBA::MARSHAL ());
}
@@ -932,18 +2385,69 @@ void POA_ImplementationRepository::Administration::_non_existent_skel (
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
- if (!((_tao_out << CORBA::Any::from_boolean (_tao_retval))))
+ if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
ACE_THROW (CORBA::MARSHAL ());
}
+void POA_ImplementationRepository::Administration::_interface_skel (
+ TAO_ServerRequest &_tao_server_request,
+ void * _tao_object_reference,
+ void * /* context */,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+{
+ POA_ImplementationRepository::Administration *_tao_impl = (POA_ImplementationRepository::Administration *) _tao_object_reference;
+ CORBA_InterfaceDef_ptr _tao_retval = 0;
+ CORBA::Boolean _tao_result = 0;
+
+ 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 ());
+ }
+
+ ACE_TRY
+ {
+ _tao_retval = _tao_impl->_get_interface (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ _tao_server_request.init_reply ();
+
+ TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
+ _tao_result =
+ _tao_adapter->interfacedef_cdr_insert (
+ _tao_out,
+ _tao_retval
+ );
+ }
+ ACE_CATCHALL
+ {
+ _tao_adapter->dispose (_tao_retval);
+ }
+ ACE_ENDTRY;
+
+ if (_tao_result == 0)
+ {
+ ACE_THROW (CORBA::MARSHAL ());
+ }
+}
+
CORBA::Boolean POA_ImplementationRepository::Administration::_is_a (
const char* value,
CORBA::Environment &ACE_TRY_ENV
)
{
+ const char *base_id = CORBA::_tc_Object->id (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
if (
(!ACE_OS::strcmp ((char *)value, "IDL:ImplementationRepository/Administration:1.0")) ||
- (!ACE_OS::strcmp ((char *)value, CORBA::_tc_Object->id (ACE_TRY_ENV))))
+ (!ACE_OS::strcmp ((char *)value, base_id)))
return 1;
else
return 0;
@@ -953,9 +2457,9 @@ void* POA_ImplementationRepository::Administration::_downcast (
const char* logical_type_id
)
{
-if (ACE_OS::strcmp (logical_type_id, "IDL:ImplementationRepository/Administration:1.0") == 0)
+ if (ACE_OS::strcmp (logical_type_id, "IDL:ImplementationRepository/Administration:1.0") == 0)
return ACE_static_cast (POA_ImplementationRepository::Administration_ptr, this);
- if (ACE_OS::strcmp (logical_type_id, "IDL:omg.org/CORBA/Object:1.0") == 0)
+ if (ACE_OS::strcmp (logical_type_id, "IDL:omg.org/CORBA/Object:1.0") == 0)
return ACE_static_cast(PortableServer::Servant, this);
return 0;
}
@@ -975,397 +2479,829 @@ POA_ImplementationRepository::Administration::_this (CORBA_Environment &ACE_TRY_
{
TAO_Stub *stub = this->_create_stub (ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
+
+ CORBA::Object_ptr tmp = CORBA::Object::_nil ();
+
if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ())
- switch (stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ())
- {
- case TAO_ORB_Core::THRU_POA:
- {
- ::ImplementationRepository::Administration_ptr retval = 0;
- ACE_NEW_RETURN (
- retval,
- POA_ImplementationRepository::_tao_thru_poa_collocated_Administration (stub),
- 0
- );
- return retval;
- }
- case TAO_ORB_Core::DIRECT:
- ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
- default:
- ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
- }
+ ACE_NEW_RETURN (tmp, CORBA::Object (stub, 1, this), 0);
else
+ ACE_NEW_RETURN (tmp, CORBA::Object (stub, 0, this), 0);
+
+ CORBA::Object_var obj = tmp;
+ return ::ImplementationRepository::Administration::_unchecked_narrow (obj.in ());
+}
+
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
+ const char * server,
+ CORBA::Environment &
+ )
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ server_ (server)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_server = parameter_list->length ();
+ parameter_list->length (length_server + 1);
+ (*parameter_list)[length_server].argument <<= server_;
+ (*parameter_list)[length_server].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
+}
+
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ExceptionList_var safe_exception_list = exception_list;
+
+ static TAO_Exception_Data _tao_ImplementationRepository_Administration_activate_server_exceptiondata[] =
+ {
+ {ImplementationRepository::Administration::_tc_NotFound, ImplementationRepository::Administration::NotFound::_alloc},
+ {ImplementationRepository::Administration::_tc_CannotActivate, ImplementationRepository::Administration::CannotActivate::_alloc}
+ };
+
+ exception_list->length (2);
+ for (CORBA::ULong i = 0; i < 2; ++i)
{
- // stub->_incr_refcnt ();
- CORBA::Object_ptr tmp = CORBA::Object::_nil ();
- ACE_NEW_RETURN (tmp, CORBA::Object (stub), 0);
- CORBA::Object_var obj = tmp;
- return ::ImplementationRepository::Administration::_unchecked_narrow (obj.in ());
+ CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_activate_server_exceptiondata[i].tc;
+ TAO_Pseudo_Object_Manager<CORBA::TypeCode,CORBA::TypeCode_var> tcp_object (&tcp, 1);
+ (*exception_list)[i] = tcp_object;
}
+
+ return safe_exception_list._retn ();
+}
+
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
}
-POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::_tao_thru_poa_collocated_Administration (
- TAO_Stub *stub
-)
- : CORBA_Object (stub, 1)
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
}
-CORBA::Boolean POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::_is_a(
- const CORBA::Char *logical_type_id,
- CORBA_Environment &ACE_TRY_ENV
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_activate_server::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
+ const char * server,
+ const ImplementationRepository::StartupOptions & options,
+ CORBA::Environment &
)
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ server_ (server),
+ options_ (options)
+{}
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "_is_a",
- forward_to.out (),
- ACE_TRY_ENV
- );
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
- return ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->_is_a (logical_type_id, ACE_TRY_ENV);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_server = parameter_list->length ();
+ parameter_list->length (length_server + 1);
+ (*parameter_list)[length_server].argument <<= server_;
+ (*parameter_list)[length_server].mode = Dynamic::PARAM_IN;
+
+ CORBA::ULong length_options = parameter_list->length ();
+ parameter_list->length (length_options + 1);
+ (*parameter_list)[length_options].argument <<= this->options_;
+
+ (*parameter_list)[length_options].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
}
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
-CORBA::Boolean POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::_non_existent(
- CORBA_Environment &ACE_TRY_ENV
- )
+ Dynamic::ExceptionList_var safe_exception_list = exception_list;
+ static TAO_Exception_Data _tao_ImplementationRepository_Administration_register_server_exceptiondata[] =
+ {
+ {ImplementationRepository::Administration::_tc_AlreadyRegistered, ImplementationRepository::Administration::AlreadyRegistered::_alloc}
+ };
+
+ exception_list->length (1);
+ for (CORBA::ULong i = 0; i < 1; ++i)
+ {
+ CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_register_server_exceptiondata[i].tc;
+ TAO_Pseudo_Object_Manager<CORBA::TypeCode,CORBA::TypeCode_var> tcp_object (&tcp, 1);
+ (*exception_list)[i] = tcp_object;
+ }
+
+ return safe_exception_list._retn ();
+}
+
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::result (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "_non_existent",
- forward_to.out (),
- ACE_TRY_ENV
- );
+ // Generate the result on demand.
+ CORBA::Boolean tk_void_any = 1;
+ CORBA::Any *result_any =
+ TAO_RequestInfo_Util::make_any (tk_void_any, ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
- return ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->_non_existent (ACE_TRY_ENV);
+
+ return result_any;
}
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::activate_server (
- const char * server,
- CORBA::Environment &ACE_TRY_ENV
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- ImplementationRepository::Administration::NotFound,
- ImplementationRepository::Administration::CannotActivate
- ))
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_register_server::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "activate_server",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->activate_server (
- server,
- ACE_TRY_ENV
- );
- return;
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::register_server (
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
const char * server,
const ImplementationRepository::StartupOptions & options,
- CORBA::Environment &ACE_TRY_ENV
+ CORBA::Environment &
)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- ImplementationRepository::Administration::AlreadyRegistered
- ))
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ server_ (server),
+ options_ (options)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "register_server",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->register_server (
- server,
- options,
- ACE_TRY_ENV
- );
- return;
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_server = parameter_list->length ();
+ parameter_list->length (length_server + 1);
+ (*parameter_list)[length_server].argument <<= server_;
+ (*parameter_list)[length_server].mode = Dynamic::PARAM_IN;
+
+ CORBA::ULong length_options = parameter_list->length ();
+ parameter_list->length (length_options + 1);
+ (*parameter_list)[length_options].argument <<= this->options_;
+
+ (*parameter_list)[length_options].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::reregister_server (
- const char * server,
- const ImplementationRepository::StartupOptions & options,
- CORBA::Environment &ACE_TRY_ENV
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "reregister_server",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->reregister_server (
- server,
- options,
- ACE_TRY_ENV
- );
- return;
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return exception_list;
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::remove_server (
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
+}
+
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
+
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_reregister_server::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
const char * server,
- CORBA::Environment &ACE_TRY_ENV
+ CORBA::Environment &
)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- ImplementationRepository::Administration::NotFound
- ))
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ server_ (server)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "remove_server",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->remove_server (
- server,
- ACE_TRY_ENV
- );
- return;
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_server = parameter_list->length ();
+ parameter_list->length (length_server + 1);
+ (*parameter_list)[length_server].argument <<= server_;
+ (*parameter_list)[length_server].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
+}
+
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ExceptionList_var safe_exception_list = exception_list;
+
+ static TAO_Exception_Data _tao_ImplementationRepository_Administration_remove_server_exceptiondata[] =
+ {
+ {ImplementationRepository::Administration::_tc_NotFound, ImplementationRepository::Administration::NotFound::_alloc}
+ };
+
+ exception_list->length (1);
+ for (CORBA::ULong i = 0; i < 1; ++i)
+ {
+ CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_remove_server_exceptiondata[i].tc;
+ TAO_Pseudo_Object_Manager<CORBA::TypeCode,CORBA::TypeCode_var> tcp_object (&tcp, 1);
+ (*exception_list)[i] = tcp_object;
+ }
+
+ return safe_exception_list._retn ();
+}
+
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
+}
+
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::shutdown_server (
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_remove_server::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
const char * server,
- CORBA::Environment &ACE_TRY_ENV
+ CORBA::Environment &
)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- ImplementationRepository::Administration::NotFound
- ))
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ server_ (server)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "shutdown_server",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->shutdown_server (
- server,
- ACE_TRY_ENV
- );
- return;
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_server = parameter_list->length ();
+ parameter_list->length (length_server + 1);
+ (*parameter_list)[length_server].argument <<= server_;
+ (*parameter_list)[length_server].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
+}
+
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ExceptionList_var safe_exception_list = exception_list;
+
+ static TAO_Exception_Data _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata[] =
+ {
+ {ImplementationRepository::Administration::_tc_NotFound, ImplementationRepository::Administration::NotFound::_alloc}
+ };
+
+ exception_list->length (1);
+ for (CORBA::ULong i = 0; i < 1; ++i)
+ {
+ CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_shutdown_server_exceptiondata[i].tc;
+ TAO_Pseudo_Object_Manager<CORBA::TypeCode,CORBA::TypeCode_var> tcp_object (&tcp, 1);
+ (*exception_list)[i] = tcp_object;
+ }
+
+ return safe_exception_list._retn ();
}
-char * POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::server_is_running (
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
+}
+
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
+
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_shutdown_server::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
const char * server,
const char * addr,
ImplementationRepository::ServerObject_ptr server_object,
- CORBA::Environment &ACE_TRY_ENV
+ CORBA::Environment &
)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- ImplementationRepository::Administration::NotFound
- ))
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ server_ (server),
+ addr_ (addr),
+ server_object_ (server_object)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- CORBA::String_var _tao_retval;
- ACE_UNUSED_ARG (_tao_retval);
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "server_is_running",
- forward_to.out (),
- ACE_TRY_ENV
- );
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
- return ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->server_is_running (
- server,
- addr,
- server_object,
- ACE_TRY_ENV
- );
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_server = parameter_list->length ();
+ parameter_list->length (length_server + 1);
+ (*parameter_list)[length_server].argument <<= server_;
+ (*parameter_list)[length_server].mode = Dynamic::PARAM_IN;
+
+ CORBA::ULong length_addr = parameter_list->length ();
+ parameter_list->length (length_addr + 1);
+ (*parameter_list)[length_addr].argument <<= addr_;
+ (*parameter_list)[length_addr].mode = Dynamic::PARAM_IN;
+
+ CORBA::ULong length_server_object = parameter_list->length ();
+ parameter_list->length (length_server_object + 1);
+ (*parameter_list)[length_server_object].argument <<= this->server_object_;
+
+ (*parameter_list)[length_server_object].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
+}
+
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ExceptionList_var safe_exception_list = exception_list;
+
+ static TAO_Exception_Data _tao_ImplementationRepository_Administration_server_is_running_exceptiondata[] =
+ {
+ {ImplementationRepository::Administration::_tc_NotFound, ImplementationRepository::Administration::NotFound::_alloc}
+ };
+
+ exception_list->length (1);
+ for (CORBA::ULong i = 0; i < 1; ++i)
+ {
+ CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_server_is_running_exceptiondata[i].tc;
+ TAO_Pseudo_Object_Manager<CORBA::TypeCode,CORBA::TypeCode_var> tcp_object (&tcp, 1);
+ (*exception_list)[i] = tcp_object;
+ }
+
+ return safe_exception_list._retn ();
+}
+
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ CORBA::Any_var safe_result_any = result_any;
+
+ (*result_any) <<= this->_result;
+
+ return safe_result_any._retn ();
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::server_is_shutting_down (
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
+
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+void
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_running::result (char * result)
+{
+ // Update the result.
+ this->_result = result;
+}
+
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
const char * server,
- CORBA::Environment &ACE_TRY_ENV
+ CORBA::Environment &
)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- ImplementationRepository::Administration::NotFound
- ))
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ server_ (server)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "server_is_shutting_down",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->server_is_shutting_down (
- server,
- ACE_TRY_ENV
- );
- return;
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_server = parameter_list->length ();
+ parameter_list->length (length_server + 1);
+ (*parameter_list)[length_server].argument <<= server_;
+ (*parameter_list)[length_server].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
+}
+
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ExceptionList_var safe_exception_list = exception_list;
+
+ static TAO_Exception_Data _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata[] =
+ {
+ {ImplementationRepository::Administration::_tc_NotFound, ImplementationRepository::Administration::NotFound::_alloc}
+ };
+
+ exception_list->length (1);
+ for (CORBA::ULong i = 0; i < 1; ++i)
+ {
+ CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_server_is_shutting_down_exceptiondata[i].tc;
+ TAO_Pseudo_Object_Manager<CORBA::TypeCode,CORBA::TypeCode_var> tcp_object (&tcp, 1);
+ (*exception_list)[i] = tcp_object;
+ }
+
+ return safe_exception_list._retn ();
+}
+
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
+}
+
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
+
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_server_is_shutting_down::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::find (
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_find::TAO_ServerRequestInfo_ImplementationRepository_Administration_find (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
const char * server,
- ImplementationRepository::ServerInformation_out info,
- CORBA::Environment &ACE_TRY_ENV
+ CORBA::Environment &
)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- ImplementationRepository::Administration::NotFound
- ))
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ server_ (server)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_find::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "find",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->find (
- server,
- info,
- ACE_TRY_ENV
- );
- return;
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_server = parameter_list->length ();
+ parameter_list->length (length_server + 1);
+ (*parameter_list)[length_server].argument <<= server_;
+ (*parameter_list)[length_server].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_Administration::list (
- CORBA::ULong how_many,
- ImplementationRepository::ServerInformationList_out server_list,
- ImplementationRepository::ServerInformationIterator_out server_iterator,
- CORBA::Environment &ACE_TRY_ENV
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_find::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ExceptionList_var safe_exception_list = exception_list;
+
+ static TAO_Exception_Data _tao_ImplementationRepository_Administration_find_exceptiondata[] =
+ {
+ {ImplementationRepository::Administration::_tc_NotFound, ImplementationRepository::Administration::NotFound::_alloc}
+ };
+
+ exception_list->length (1);
+ for (CORBA::ULong i = 0; i < 1; ++i)
+ {
+ CORBA::TypeCode_ptr tcp = _tao_ImplementationRepository_Administration_find_exceptiondata[i].tc;
+ TAO_Pseudo_Object_Manager<CORBA::TypeCode,CORBA::TypeCode_var> tcp_object (&tcp, 1);
+ (*exception_list)[i] = tcp_object;
+ }
+
+ return safe_exception_list._retn ();
+}
+
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_find::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return result_any;
+}
+
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_find::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
+
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_find::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_list::TAO_ServerRequestInfo_ImplementationRepository_Administration_list (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::Administration *tao_impl,
+ const CORBA::ULong & how_many
+,
+ CORBA::Environment &
)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ how_many_ (how_many)
+
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_list::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "list",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::Administration_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/Administration:1.0"
- )
- )->list (
- how_many,
- server_list,
- server_iterator,
- ACE_TRY_ENV
- );
- return;
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_how_many = parameter_list->length ();
+ parameter_list->length (length_how_many + 1);
+ (*parameter_list)[length_how_many].argument <<= how_many_;
+ (*parameter_list)[length_how_many].mode = Dynamic::PARAM_IN;
+
+
+ return safe_parameter_list._retn ();
}
+Dynamic::ExceptionList *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_list::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return exception_list;
+}
+CORBA::Any *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_list::result (CORBA::Environment &ACE_TRY_ENV)
+ 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_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+ return result_any;
+}
+
+char *
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_list::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
+
+CORBA::Boolean
+POA_ImplementationRepository::Administration::TAO_ServerRequestInfo_ImplementationRepository_Administration_list::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+#endif /* TAO_HAS_INTERCEPTORS */
class TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable : public TAO_Perfect_Hash_OpTable
{
private:
@@ -1373,9 +3309,9 @@ private:
public:
const TAO_operation_db_entry * lookup (const char *str, unsigned int len);
};
-/* starting time is 12:16:37 */
+/* starting time is 16:33:09 */
/* C++ code produced by gperf version 2.8 (ACE version) */
-/* Command-line: /home/coryan/subsets/ACE_wrappers/build/Linux/bin/gperf -m -M -J -c -C -D -E -T -f 0 -F 0 -a -o -t -p -K opname_ -L C++ -Z TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable -N lookup */
+/* Command-line: /project/sirion/coryan/head/ACE_wrappers/build/Linux/bin/gperf -m -M -J -c -C -D -E -T -f 0 -F 0 -a -o -t -p -K opname_ -L C++ -Z TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable -N lookup */
unsigned int
TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable::hash (const char *str, unsigned int len)
{
@@ -1395,7 +3331,7 @@ TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable::has
14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 14, 14, 0, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 0, 0, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 0, 14, 14, 14, 14, 0, 14,
@@ -1419,7 +3355,7 @@ TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable::has
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 0, 14, 0, 14, 14,
- 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 0, 0, 14, 14, 14, 14, 14, 14, 14, 14,
0, 14, 14, 14, 14, 14, 0, 14, 14, 14,
14, 0, 14, 14, 14, 14, 14, 14,
#endif /* ACE_MVS */
@@ -1432,7 +3368,7 @@ TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable::loo
{
enum
{
- TOTAL_KEYWORDS = 4,
+ TOTAL_KEYWORDS = 5,
MIN_WORD_LENGTH = 5,
MAX_WORD_LENGTH = 13,
MIN_HASH_VALUE = 5,
@@ -1447,7 +3383,9 @@ TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable::loo
{"_is_a", &POA_ImplementationRepository::ServerInformationIterator::_is_a_skel},
{"next_n", &POA_ImplementationRepository::ServerInformationIterator::next_n_skel},
{"destroy", &POA_ImplementationRepository::ServerInformationIterator::destroy_skel},
- {"",0},{"",0},{"",0},{"",0},{"",0},
+ {"",0},{"",0},
+ {"_interface", &POA_ImplementationRepository::ServerInformationIterator::_interface_skel},
+ {"",0},{"",0},
{"_non_existent", &POA_ImplementationRepository::ServerInformationIterator::_non_existent_skel},
};
@@ -1465,48 +3403,255 @@ TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable::loo
}
return 0;
}
-/* ending time is 12:16:37 */
+/* ending time is 16:33:09 */
static TAO_ImplementationRepository_ServerInformationIterator_Perfect_Hash_OpTable tao_ImplementationRepository_ServerInformationIterator_optable;
-ImplementationRepository::ServerInformationIterator_ptr _TAO_collocation_POA_ImplementationRepository_ServerInformationIterator_Stub_Factory (
- CORBA::Object_ptr obj
+
+///////////////////////////////////////////////////////////////////////
+// Strategized Proxy Broker Implementation
+//
+
+// Factory function Implementation.
+POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker *POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::the_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void)
+{
+ static POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker strategized_proxy_broker;
+ return &strategized_proxy_broker;
+}
+
+POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void)
+{
+ for (int i = 0; i < TAO_Collocation_Strategies::CS_LAST; ++i)
+ this->proxy_cache_[i] = 0;
+
+}
+
+POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::~_TAO_ServerInformationIterator_Strategized_Proxy_Broker (void)
+{
+ for (int i = 0; i < TAO_Collocation_Strategies::CS_LAST; ++i)
+ delete this->proxy_cache_[i];
+
+}
+
+ImplementationRepository::_TAO_ServerInformationIterator_Proxy_Impl&
+POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::select_proxy (
+ ::ImplementationRepository::ServerInformationIterator *object,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+{
+ int strategy =
+ TAO_ORB_Core::collocation_strategy (object);
+
+ if (this->proxy_cache_[strategy] != 0)
+ return *this->proxy_cache_[strategy];
+
+ this->create_proxy (strategy, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (*this->proxy_cache_[strategy]);
+
+ return *this->proxy_cache_[strategy];
+
+}
+
+void
+POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::create_proxy (
+ int strategy,
+ CORBA::Environment &ACE_TRY_ENV
)
{
- TAO_Stub *stub = obj->_stubobj ();
+ ACE_GUARD (TAO_SYNCH_MUTEX, guard, this->mutex_);
- switch (stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ())
+ if (this->proxy_cache_[strategy] == 0)
{
- case TAO_ORB_Core::THRU_POA:
- {
- ImplementationRepository::ServerInformationIterator_ptr retval = 0;
- ACE_NEW_RETURN (
- retval,
- POA_ImplementationRepository::_tao_thru_poa_collocated_ServerInformationIterator (stub),
- 0
- );
- return retval;
+ switch (strategy)
+ {
+ case TAO_Collocation_Strategies::CS_THRU_POA_STRATEGY:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
+ case TAO_Collocation_Strategies::CS_DIRECT_STRATEGY:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
+ case TAO_Collocation_Strategies::CS_REMOTE_STRATEGY:
+ default:
+ ACE_NEW_THROW_EX (
+ this->proxy_cache_[strategy],
+ ::ImplementationRepository::_TAO_ServerInformationIterator_Remote_Proxy_Impl,
+ CORBA::NO_MEMORY ()
+ );
+ ACE_CHECK;
+ break;
+
}
- case TAO_ORB_Core::DIRECT:
- break;
- default:
- break;
- }
- return 0;
+
+ }
+}
+
+
+//
+// End Strategized Proxy Broker Implementation
+///////////////////////////////////////////////////////////////////////
+
+
+ImplementationRepository::_TAO_ServerInformationIterator_Proxy_Broker *
+ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function (CORBA::Object_ptr obj)
+{
+ ACE_UNUSED_ARG (obj);
+ return ::POA_ImplementationRepository::_TAO_ServerInformationIterator_Strategized_Proxy_Broker::the_TAO_ServerInformationIterator_Strategized_Proxy_Broker();
}
-int _TAO_collocation_POA_ImplementationRepository_ServerInformationIterator_Stub_Factory_Initializer (long dummy)
+int
+ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_Initializer (long _dummy_)
{
- ACE_UNUSED_ARG (dummy);
+ ACE_UNUSED_ARG (_dummy_);
- _TAO_collocation_ImplementationRepository_ServerInformationIterator_Stub_Factory_function_pointer =
- _TAO_collocation_POA_ImplementationRepository_ServerInformationIterator_Stub_Factory;
+ ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function_pointer =
+ ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_function;
return 0;
}
-static int _TAO_collocation_POA_ImplementationRepository_ServerInformationIterator_Stub_Factory_Initializer_Scarecrow =
- _TAO_collocation_POA_ImplementationRepository_ServerInformationIterator_Stub_Factory_Initializer (ACE_reinterpret_cast (long, _TAO_collocation_POA_ImplementationRepository_ServerInformationIterator_Stub_Factory_Initializer));
+static int ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Stub_Factory_Initializer_Scarecrow =
+ ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_Initializer (ACE_reinterpret_cast (long, ImplementationRepository__TAO_ServerInformationIterator_Proxy_Broker_Factory_Initializer));
+
+
+///////////////////////////////////////////////////////////////////////
+// ThruPOA Proxy Implementation
+//
+
+POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl (void)
+{}
+
+// ThruPOA Implementation of the IDL interface methods
+
+CORBA::Boolean POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl::next_n (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::ULong how_many,
+ ImplementationRepository::ServerInformationList_out server_list,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ CORBA::Boolean _tao_retval = 0;
+ ACE_UNUSED_ARG (_tao_retval);
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "next_n",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK_RETURN (_tao_retval);
+ return ACE_reinterpret_cast (
+ POA_ImplementationRepository::ServerInformationIterator_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/ServerInformationIterator:1.0"
+ )
+ )->next_n (
+ how_many,
+ server_list,
+ ACE_TRY_ENV
+ );
+}
+
+void POA_ImplementationRepository::_TAO_ServerInformationIterator_ThruPOA_Proxy_Impl::destroy (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ TAO_Object_Adapter::Servant_Upcall servant_upcall (
+ _collocated_tao_target_->_stubobj ()->servant_orb_var ()->orb_core ()
+ );
+ CORBA::Object_var forward_to;
+ servant_upcall.prepare_for_upcall (
+ _collocated_tao_target_->_object_key (),
+ "destroy",
+ forward_to.out (),
+ ACE_TRY_ENV
+ );
+ ACE_CHECK;
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::ServerInformationIterator_ptr,
+ servant_upcall.servant ()->_downcast (
+ "IDL:ImplementationRepository/ServerInformationIterator:1.0"
+ )
+ )->destroy (
+ ACE_TRY_ENV
+ );
+ return;
+}
+
+//
+// End ThruPOA Proxy Implementation
+///////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////
+// Direct Proxy Implementation
+//
+
+POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::_TAO_ServerInformationIterator_Direct_Proxy_Impl (void)
+{}
+
+CORBA::Boolean POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::next_n (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::ULong how_many,
+ ImplementationRepository::ServerInformationList_out server_list,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ return ACE_reinterpret_cast (
+ POA_ImplementationRepository::ServerInformationIterator_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/ServerInformationIterator:1.0")
+ )->next_n (
+ how_many,
+ server_list,
+ ACE_TRY_ENV
+ );
+
+}
+
+void POA_ImplementationRepository::_TAO_ServerInformationIterator_Direct_Proxy_Impl::destroy (
+ CORBA_Object *_collocated_tao_target_,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ ACE_reinterpret_cast (
+ POA_ImplementationRepository::ServerInformationIterator_ptr,
+ _collocated_tao_target_->_servant ()->_downcast ("IDL:ImplementationRepository/ServerInformationIterator:1.0")
+ )->destroy (
+ ACE_TRY_ENV
+ );
+
+}
+
+//
+// End Direct Proxy Implementation
+///////////////////////////////////////////////////////////////////////
// skeleton constructor
POA_ImplementationRepository::ServerInformationIterator::ServerInformationIterator (void)
{
@@ -1528,36 +3673,90 @@ void POA_ImplementationRepository::ServerInformationIterator::next_n_skel (
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
TAO_InputCDR &_tao_in = _tao_server_request.incoming ();
POA_ImplementationRepository::ServerInformationIterator *_tao_impl = (POA_ImplementationRepository::ServerInformationIterator *)_tao_object_reference;
- CORBA::Boolean _tao_retval = 0;
+ CORBA::Boolean _tao_retval = 0;
CORBA::ULong how_many;
ImplementationRepository::ServerInformationList_var server_list;
if (!(
(_tao_in >> how_many)
))
- ACE_THROW (CORBA::MARSHAL () );
+ ACE_THROW (CORBA::MARSHAL());
- _tao_retval = _tao_impl->next_n (
- how_many,
- server_list.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+ POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n ri (
+ _tao_server_request,
+ _tao_impl,
+ how_many,
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
+ _tao_retval =
+ _tao_impl->next_n (
+ how_many,
+ server_list.out (),
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ CORBA::Boolean _tao_retval_info = _tao_retval;
+ ri.result (_tao_retval_info);
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
+
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
if (!(
- (_tao_out << CORBA::Any::from_boolean (_tao_retval)) &&
- (_tao_out << server_list.in ())
- ))
- ACE_THROW (CORBA::MARSHAL () );
+ (_tao_out << CORBA::Any::from_boolean (_tao_retval)) &&
+ (_tao_out << server_list.in ())
+ ))
+ ACE_THROW (CORBA::MARSHAL());
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
}
void POA_ImplementationRepository::ServerInformationIterator::destroy_skel (
@@ -1565,20 +3764,70 @@ void POA_ImplementationRepository::ServerInformationIterator::destroy_skel (
void *_tao_object_reference,
void * /* context */,
CORBA::Environment &ACE_TRY_ENV
-)
+ )
{
POA_ImplementationRepository::ServerInformationIterator *_tao_impl = (POA_ImplementationRepository::ServerInformationIterator *)_tao_object_reference;
+ _tao_server_request.argument_flag (0);
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ TAO_ServerRequestInterceptor_Adapter _tao_vfr (
+ _tao_server_request.orb_core ()->server_request_interceptors (),
+ _tao_server_request.interceptor_count ()
+ );
+
+ POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy ri (
+ _tao_server_request,
+ _tao_impl,
+ ACE_TRY_ENV
+ );
+
+ ACE_TRY
+ {
+ _tao_vfr.receive_request (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_impl->destroy (
+ ACE_TRY_ENV
+ );
+ TAO_INTERCEPTOR_CHECK;
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+ ri.reply_status (PortableInterceptor::SUCCESSFUL);
+ _tao_vfr.send_reply (&ri, ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (PortableInterceptor::ForwardRequest, exc)
+ {
+ ri.forward_reference (exc);
+ _tao_vfr.send_other (
+ &ri,
ACE_TRY_ENV
);
-
- ACE_CHECK;
-
+ ACE_TRY_CHECK;
+ _tao_server_request.forward_location (exc.forward.in ());
+ }
+ ACE_CATCHANY
+ {
+ ri.exception (&ACE_ANY_EXCEPTION);
+ _tao_vfr.send_exception (
+ &ri,
+ ACE_TRY_ENV
+ );
+ ACE_TRY_CHECK;
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK;
+#endif /* TAO_HAS_INTERCEPTORS */
_tao_server_request.init_reply ();
- }
+
+ // In case ACE_TRY_ENV is not used in this function
+ ACE_UNUSED_ARG (ACE_TRY_ENV);
+}
void POA_ImplementationRepository::ServerInformationIterator::_is_a_skel (
TAO_ServerRequest &_tao_server_request,
@@ -1591,7 +3840,7 @@ void POA_ImplementationRepository::ServerInformationIterator::_is_a_skel (
POA_ImplementationRepository::ServerInformationIterator *_tao_impl = (POA_ImplementationRepository::ServerInformationIterator *) _tao_object_reference;
CORBA::Boolean _tao_retval = 0;
CORBA::String_var value;
- if (!((_tao_in >> value.out ())))
+ if (!(_tao_in >> value.out ()))
ACE_THROW (CORBA::MARSHAL ());
_tao_retval = _tao_impl->_is_a (value.in (), ACE_TRY_ENV);
@@ -1599,7 +3848,7 @@ void POA_ImplementationRepository::ServerInformationIterator::_is_a_skel (
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
- if (!((_tao_out << CORBA::Any::from_boolean (_tao_retval))))
+ if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
ACE_THROW (CORBA::MARSHAL ());
}
@@ -1616,18 +3865,69 @@ void POA_ImplementationRepository::ServerInformationIterator::_non_existent_skel
_tao_server_request.init_reply ();
TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
- if (!((_tao_out << CORBA::Any::from_boolean (_tao_retval))))
+ if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))
ACE_THROW (CORBA::MARSHAL ());
}
+void POA_ImplementationRepository::ServerInformationIterator::_interface_skel (
+ TAO_ServerRequest &_tao_server_request,
+ void * _tao_object_reference,
+ void * /* context */,
+ CORBA::Environment &ACE_TRY_ENV
+ )
+{
+ POA_ImplementationRepository::ServerInformationIterator *_tao_impl = (POA_ImplementationRepository::ServerInformationIterator *) _tao_object_reference;
+ CORBA_InterfaceDef_ptr _tao_retval = 0;
+ CORBA::Boolean _tao_result = 0;
+
+ 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 ());
+ }
+
+ ACE_TRY
+ {
+ _tao_retval = _tao_impl->_get_interface (ACE_TRY_ENV);
+ ACE_TRY_CHECK;
+
+ _tao_server_request.init_reply ();
+
+ TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();
+
+ _tao_result =
+ _tao_adapter->interfacedef_cdr_insert (
+ _tao_out,
+ _tao_retval
+ );
+ }
+ ACE_CATCHALL
+ {
+ _tao_adapter->dispose (_tao_retval);
+ }
+ ACE_ENDTRY;
+
+ if (_tao_result == 0)
+ {
+ ACE_THROW (CORBA::MARSHAL ());
+ }
+}
+
CORBA::Boolean POA_ImplementationRepository::ServerInformationIterator::_is_a (
const char* value,
CORBA::Environment &ACE_TRY_ENV
)
{
+ const char *base_id = CORBA::_tc_Object->id (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
if (
(!ACE_OS::strcmp ((char *)value, "IDL:ImplementationRepository/ServerInformationIterator:1.0")) ||
- (!ACE_OS::strcmp ((char *)value, CORBA::_tc_Object->id (ACE_TRY_ENV))))
+ (!ACE_OS::strcmp ((char *)value, base_id)))
return 1;
else
return 0;
@@ -1637,9 +3937,9 @@ void* POA_ImplementationRepository::ServerInformationIterator::_downcast (
const char* logical_type_id
)
{
-if (ACE_OS::strcmp (logical_type_id, "IDL:ImplementationRepository/ServerInformationIterator:1.0") == 0)
+ if (ACE_OS::strcmp (logical_type_id, "IDL:ImplementationRepository/ServerInformationIterator:1.0") == 0)
return ACE_static_cast (POA_ImplementationRepository::ServerInformationIterator_ptr, this);
- if (ACE_OS::strcmp (logical_type_id, "IDL:omg.org/CORBA/Object:1.0") == 0)
+ if (ACE_OS::strcmp (logical_type_id, "IDL:omg.org/CORBA/Object:1.0") == 0)
return ACE_static_cast(PortableServer::Servant, this);
return 0;
}
@@ -1659,152 +3959,168 @@ POA_ImplementationRepository::ServerInformationIterator::_this (CORBA_Environmen
{
TAO_Stub *stub = this->_create_stub (ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
+
+ CORBA::Object_ptr tmp = CORBA::Object::_nil ();
+
if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ())
- switch (stub->servant_orb_var ()->orb_core ()->get_collocation_strategy ())
- {
- case TAO_ORB_Core::THRU_POA:
- {
- ::ImplementationRepository::ServerInformationIterator_ptr retval = 0;
- ACE_NEW_RETURN (
- retval,
- POA_ImplementationRepository::_tao_thru_poa_collocated_ServerInformationIterator (stub),
- 0
- );
- return retval;
- }
- case TAO_ORB_Core::DIRECT:
- ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
- default:
- ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
- }
+ ACE_NEW_RETURN (tmp, CORBA::Object (stub, 1, this), 0);
else
- {
- // stub->_incr_refcnt ();
- CORBA::Object_ptr tmp = CORBA::Object::_nil ();
- ACE_NEW_RETURN (tmp, CORBA::Object (stub), 0);
- CORBA::Object_var obj = tmp;
- return ::ImplementationRepository::ServerInformationIterator::_unchecked_narrow (obj.in ());
- }
+ ACE_NEW_RETURN (tmp, CORBA::Object (stub, 0, this), 0);
+
+ CORBA::Object_var obj = tmp;
+ return ::ImplementationRepository::ServerInformationIterator::_unchecked_narrow (obj.in ());
}
-POA_ImplementationRepository::_tao_thru_poa_collocated_ServerInformationIterator::_tao_thru_poa_collocated_ServerInformationIterator (
- TAO_Stub *stub
-)
- : CORBA_Object (stub, 1)
+
+#if (TAO_HAS_INTERCEPTORS == 1)
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::ServerInformationIterator *tao_impl,
+ const CORBA::ULong & how_many,
+ CORBA::Environment &
+ )
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl),
+ how_many_ (how_many)
+{}
+
+Dynamic::ParameterList *
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ Dynamic::ParameterList_var safe_parameter_list = parameter_list;
+
+ CORBA::ULong length_how_many = parameter_list->length ();
+ parameter_list->length (length_how_many + 1);
+ (*parameter_list)[length_how_many].argument <<= how_many_;
+ (*parameter_list)[length_how_many].mode = Dynamic::PARAM_IN;
+
+ return safe_parameter_list._retn ();
}
-CORBA::Boolean POA_ImplementationRepository::_tao_thru_poa_collocated_ServerInformationIterator::_is_a(
- const CORBA::Char *logical_type_id,
- CORBA_Environment &ACE_TRY_ENV
- )
+Dynamic::ExceptionList *
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return exception_list;
+}
+CORBA::Any *
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::result (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "_is_a",
- forward_to.out (),
- ACE_TRY_ENV
- );
+ // Generate the result on demand.
+ CORBA::Boolean tk_void_any = 0;
+ CORBA::Any *result_any =
+ TAO_RequestInfo_Util::make_any (tk_void_any, ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
- return ACE_reinterpret_cast (
- POA_ImplementationRepository::ServerInformationIterator_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/ServerInformationIterator:1.0"
- )
- )->_is_a (logical_type_id, ACE_TRY_ENV);
+
+ CORBA::Any_var safe_result_any = result_any;
+
+ (*result_any) <<= CORBA::Any::from_boolean (this->_result);
+
+ return safe_result_any._retn ();
}
+char *
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
+}
-CORBA::Boolean POA_ImplementationRepository::_tao_thru_poa_collocated_ServerInformationIterator::_non_existent(
- CORBA_Environment &ACE_TRY_ENV
+CORBA::Boolean
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+void
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_next_n::result (CORBA::Boolean result)
+{
+ // Update the result.
+ this->_result = result;
+}
+
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy (
+ TAO_ServerRequest &_tao_server_request,
+ POA_ImplementationRepository::ServerInformationIterator *tao_impl,
+ CORBA::Environment &
)
+ : TAO_ServerRequestInfo (_tao_server_request),
+ _tao_impl (tao_impl)
+{}
+Dynamic::ParameterList *
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::arguments (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "_non_existent",
- forward_to.out (),
- ACE_TRY_ENV
- );
+ // Generate the argument list on demand.
+ Dynamic::ParameterList *parameter_list =
+ TAO_RequestInfo_Util::make_parameter_list (ACE_TRY_ENV);
ACE_CHECK_RETURN (0);
- return ACE_reinterpret_cast (
- POA_ImplementationRepository::ServerInformationIterator_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/ServerInformationIterator:1.0"
- )
- )->_non_existent (ACE_TRY_ENV);
+
+ return parameter_list;
}
+Dynamic::ExceptionList *
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::exceptions (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ // Generate the exception list on demand.
+ Dynamic::ExceptionList *exception_list =
+ TAO_RequestInfo_Util::make_exception_list (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return exception_list;
+}
-CORBA::Boolean POA_ImplementationRepository::_tao_thru_poa_collocated_ServerInformationIterator::next_n (
- CORBA::ULong how_many,
- ImplementationRepository::ServerInformationList_out server_list,
- CORBA::Environment &ACE_TRY_ENV
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+CORBA::Any *
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::result (CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- CORBA::Boolean _tao_retval = 0;
- ACE_UNUSED_ARG (_tao_retval);
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "next_n",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK_RETURN (_tao_retval);
- return ACE_reinterpret_cast (
- POA_ImplementationRepository::ServerInformationIterator_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/ServerInformationIterator:1.0"
- )
- )->next_n (
- how_many,
- server_list,
- ACE_TRY_ENV
- );
+ // Generate the result on demand.
+ CORBA::Boolean tk_void_any = 1;
+ CORBA::Any *result_any =
+ TAO_RequestInfo_Util::make_any (tk_void_any, ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+ return result_any;
}
-void POA_ImplementationRepository::_tao_thru_poa_collocated_ServerInformationIterator::destroy (
- CORBA::Environment &ACE_TRY_ENV
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+char *
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::target_most_derived_interface (
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
{
- TAO_Object_Adapter::Servant_Upcall servant_upcall (
- this->_stubobj ()->servant_orb_var ()->orb_core ()
- );
- CORBA::Object_var forward_to;
- servant_upcall.prepare_for_upcall (
- this->_object_key (),
- "destroy",
- forward_to.out (),
- ACE_TRY_ENV
- );
- ACE_CHECK;
- ACE_reinterpret_cast (
- POA_ImplementationRepository::ServerInformationIterator_ptr,
- servant_upcall.servant ()->_downcast (
- "IDL:ImplementationRepository/ServerInformationIterator:1.0"
- )
- )->destroy (
- ACE_TRY_ENV
- );
- return;
+ return
+ CORBA::string_dup (this->_tao_impl->_interface_repository_id ());
}
+
+CORBA::Boolean
+POA_ImplementationRepository::ServerInformationIterator::TAO_ServerRequestInfo_ImplementationRepository_ServerInformationIterator_destroy::target_is_a (
+ const char * id,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return this->_tao_impl->_is_a (id, ACE_TRY_ENV);
+}
+
+#endif /* TAO_HAS_INTERCEPTORS */
+
+#endif /* ifndef */