diff options
Diffstat (limited to 'trunk/TAO/tests/Object_Loader/Loader.cpp')
-rw-r--r-- | trunk/TAO/tests/Object_Loader/Loader.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/trunk/TAO/tests/Object_Loader/Loader.cpp b/trunk/TAO/tests/Object_Loader/Loader.cpp new file mode 100644 index 00000000000..73ae41e115f --- /dev/null +++ b/trunk/TAO/tests/Object_Loader/Loader.cpp @@ -0,0 +1,64 @@ +// $Id$ + +#include "Loader.h" +#include "Test_i.h" + +ACE_RCSID(Object_Loader, Loader, "$Id$") + +Loader::Loader (void) +{ +} + +CORBA::Object_ptr +Loader::create_object (CORBA::ORB_ptr orb, + int, + char * [] + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_TRY + { + CORBA::Object_var obj = + orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POA_var poa = + PortableServer::POA::_narrow (obj.in () ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + PortableServer::POAManager_var mgr = + poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + mgr->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + Test_i *test; + ACE_NEW_RETURN (test, Test_i (poa.in ()), + CORBA::Object::_nil ()); + + PortableServer::ServantBase_var tmp = test; + obj = test->_this (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + return obj._retn (); + } + ACE_CATCHANY + { + } + ACE_ENDTRY; + return CORBA::Object::_nil (); +} + +// **************************************************************** + +#if 0 +ACE_STATIC_SVC_DEFINE (Loader, + ACE_TEXT ("TAO_Object_Loader"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (Loader), + ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, + 0) +#endif /* 0 */ + +ACE_FACTORY_DEFINE (OLT, Loader) |