00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "orbsvcs/Naming/Naming_Loader.h"
00017 #include "ace/Dynamic_Service.h"
00018 #include "ace/Argv_Type_Converter.h"
00019
00020 ACE_RCSID (Naming, Naming_Loader, "Naming_Loader.cpp,v 1.17 2006/03/14 06:14:33 jtc Exp")
00021
00022
00023 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00024
00025 TAO_Naming_Loader::TAO_Naming_Loader (void)
00026 {
00027
00028 }
00029
00030 TAO_Naming_Loader::~TAO_Naming_Loader (void)
00031 {
00032
00033 }
00034
00035 int
00036 TAO_Naming_Loader::init (int argc, ACE_TCHAR *argv[])
00037 {
00038 ACE_DECLARE_NEW_CORBA_ENV;
00039 ACE_TRY
00040 {
00041
00042 ACE_Argv_Type_Converter command_line(argc, argv);
00043
00044
00045 CORBA::ORB_var orb =
00046 CORBA::ORB_init (command_line.get_argc(),
00047 command_line.get_ASCII_argv(),
00048 0
00049 ACE_ENV_ARG_PARAMETER);
00050 ACE_TRY_CHECK;
00051
00052
00053 CORBA::Object_var object =
00054 this->create_object (orb.in (),
00055 command_line.get_argc(),
00056 command_line.get_TCHAR_argv ()
00057 ACE_ENV_ARG_PARAMETER);
00058 ACE_TRY_CHECK;
00059 }
00060 ACE_CATCHANY
00061 {
00062
00063 return -1;
00064 }
00065 ACE_ENDTRY;
00066 return 0;
00067 }
00068
00069 int
00070 TAO_Naming_Loader::fini (void)
00071 {
00072
00073 return this->naming_server_.fini ();
00074 }
00075
00076 CORBA::Object_ptr
00077 TAO_Naming_Loader::create_object (CORBA::ORB_ptr orb,
00078 int argc,
00079 ACE_TCHAR *argv[]
00080 ACE_ENV_ARG_DECL_NOT_USED)
00081 ACE_THROW_SPEC ((CORBA::SystemException))
00082 {
00083 int result;
00084
00085
00086
00087 result = this->naming_server_.init_with_orb (argc,
00088 argv,
00089 orb);
00090 if (result == -1)
00091 return CORBA::Object::_nil ();
00092
00093 return 0;
00094 }
00095
00096 TAO_END_VERSIONED_NAMESPACE_DECL
00097
00098 ACE_FACTORY_DEFINE (TAO_Naming_Serv, TAO_Naming_Loader)