Go to the documentation of this file.00001
00002
00003
00004 #include "tao/Messaging/Messaging_Loader.h"
00005 #include "tao/Messaging/Messaging_ORBInitializer.h"
00006 #include "tao/Messaging/AMI_Arguments_Converter_Impl.h"
00007
00008 #include "tao/debug.h"
00009 #include "tao/ORB_Core.h"
00010 #include "tao/ORBInitializer_Registry.h"
00011
00012 ACE_RCSID (Messaging, Messaging_Loader, "$Id: Messaging_Loader.cpp 90400 2010-06-04 08:50:05Z vzykov $")
00013
00014
00015 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00016
00017 TAO_Messaging_Loader::TAO_Messaging_Loader (void)
00018 : initialized_ (false)
00019 {
00020 }
00021
00022 TAO_Messaging_Loader::~TAO_Messaging_Loader (void)
00023 {
00024 }
00025
00026 int
00027 TAO_Messaging_Loader::init (int,
00028 ACE_TCHAR* [])
00029 {
00030 ACE_TRACE ("TAO_Messaging_Loader::init");
00031
00032 if (this->initialized_)
00033 return 0;
00034
00035 this->initialized_ = true;
00036
00037 ACE_Service_Gestalt *gestalt = ACE_Service_Config::current ();
00038
00039 ACE_Service_Object * const messaging_loader =
00040 ACE_Dynamic_Service<ACE_Service_Object>::instance (
00041 gestalt,
00042 "Messaging_Loader",
00043 true);
00044
00045 if (messaging_loader != 0 && messaging_loader != this)
00046 {
00047 return messaging_loader->init (0, 0);
00048 }
00049
00050 PortableInterceptor::ORBInitializer_ptr temp_orb_initializer =
00051 PortableInterceptor::ORBInitializer::_nil ();
00052 PortableInterceptor::ORBInitializer_var orb_initializer;
00053
00054 try
00055 {
00056
00057
00058 ACE_NEW_THROW_EX (temp_orb_initializer,
00059 TAO_Messaging_ORBInitializer,
00060 CORBA::NO_MEMORY (
00061 CORBA::SystemException::_tao_minor_code (
00062 TAO::VMCID,
00063 ENOMEM),
00064 CORBA::COMPLETED_NO));
00065
00066 orb_initializer = temp_orb_initializer;
00067
00068 PortableInterceptor::register_orb_initializer (orb_initializer.in ());
00069 }
00070 catch (const ::CORBA::Exception& ex)
00071 {
00072 if (TAO_debug_level > 0)
00073 {
00074 ex._tao_print_exception ("Caught exception:");
00075 }
00076 return -1;
00077 }
00078
00079 return 0;
00080 }
00081
00082
00083
00084
00085 ACE_FACTORY_DEFINE (TAO_Messaging, TAO_Messaging_Loader)
00086 ACE_STATIC_SVC_DEFINE (TAO_Messaging_Loader,
00087 ACE_TEXT ("Messaging_Loader"),
00088 ACE_SVC_OBJ_T,
00089 &ACE_SVC_NAME (TAO_Messaging_Loader),
00090 ACE_Service_Type::DELETE_THIS
00091 | ACE_Service_Type::DELETE_OBJ,
00092 0)
00093
00094 TAO_END_VERSIONED_NAMESPACE_DECL