Go to the documentation of this file.00001
00002
00003
00004 #include "tao/PI_Server/PI_Server_Loader.h"
00005 #include "tao/PI_Server/PortableServer_ORBInitializer.h"
00006
00007 #include "tao/debug.h"
00008 #include "tao/ORB_Core.h"
00009 #include "tao/ORBInitializer_Registry.h"
00010
00011 ACE_RCSID (PI_Server,
00012 PI_Server_Loader,
00013 "$Id: PI_Server_Loader.cpp 87582 2009-11-16 16:04:12Z vzykov $")
00014
00015 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00016
00017 TAO_PI_Server_Loader::TAO_PI_Server_Loader (void)
00018 : initialized_ (false)
00019 {
00020 }
00021
00022 TAO_PI_Server_Loader::~TAO_PI_Server_Loader (void)
00023 {
00024 }
00025
00026 int
00027 TAO_PI_Server_Loader::init (int, ACE_TCHAR* [])
00028 {
00029 ACE_TRACE ("TAO_PI_Server_Loader::init");
00030
00031
00032 if (this->initialized_)
00033 return 0;
00034
00035 this->initialized_ = true;
00036
00037
00038 try
00039 {
00040
00041 PortableInterceptor::ORBInitializer_ptr temp_orb_initializer =
00042 PortableInterceptor::ORBInitializer::_nil ();
00043
00044 ACE_NEW_THROW_EX (temp_orb_initializer,
00045 TAO_PortableServer_ORBInitializer,
00046 CORBA::NO_MEMORY (
00047 CORBA::SystemException::_tao_minor_code (
00048 TAO::VMCID,
00049 ENOMEM),
00050 CORBA::COMPLETED_NO));
00051
00052 PortableInterceptor::ORBInitializer_var orb_initializer =
00053 temp_orb_initializer;
00054
00055 PortableInterceptor::register_orb_initializer (orb_initializer.in ());
00056 }
00057 catch (const ::CORBA::Exception& ex)
00058 {
00059 ex._tao_print_exception ("Caught exception:");
00060 return -1;
00061 }
00062
00063 return 0;
00064 }
00065
00066
00067
00068
00069 ACE_FACTORY_DEFINE (TAO_PI_Server, TAO_PI_Server_Loader)
00070 ACE_STATIC_SVC_DEFINE (TAO_PI_Server_Loader,
00071 ACE_TEXT ("PI_Server_Loader"),
00072 ACE_SVC_OBJ_T,
00073 &ACE_SVC_NAME (TAO_PI_Server_Loader),
00074 ACE_Service_Type::DELETE_THIS
00075 | ACE_Service_Type::DELETE_OBJ,
00076 0)
00077 TAO_END_VERSIONED_NAMESPACE_DECL