diff options
Diffstat (limited to 'CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp')
-rw-r--r-- | CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp | 275 |
1 files changed, 0 insertions, 275 deletions
diff --git a/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp b/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp deleted file mode 100644 index 545da80c14b..00000000000 --- a/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp +++ /dev/null @@ -1,275 +0,0 @@ -//--*C++*-- -// $Id$ - -#include "Execution_Manager_Impl.h" - -// Include Name Service header -#include "orbsvcs/CosNamingC.h" -#include "tao/Utils/Implicit_Deactivator.h" - -#include "ace/SString.h" -#include "ace/Read_Buffer.h" -#include "ace/Get_Opt.h" -#include "ace/OS_NS_unistd.h" -#include "ace/OS_NS_stdio.h" - -namespace CIAO -{ - namespace Execution_Manager - { - const char *ior_file_name_ = "executionManager.ior"; - const char *init_file_name = "deployment.dat"; - const char *pid_file_name_ = 0; - static bool register_with_ns_ = false; - static bool write_to_ior_ = false; - - bool - parse_args (int argc, char *argv[]) - { - ACE_Get_Opt get_opts (argc, argv, "o:i:np:"); - int c; - while ((c = get_opts ()) != -1) - switch (c) - { - case 'o': - write_to_ior_ = true; - ior_file_name_ = get_opts.opt_arg (); - break; - case 'i': - init_file_name = get_opts.opt_arg (); - break; - case 'n': - register_with_ns_ = true; - break; - case 'p': - pid_file_name_ = get_opts.opt_arg (); - break; - case '?': // display help for use of the server. - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s\n" - "-o <ior_output_file>\n" - "-i <installation data filename>\n" - "-n <use naming service>\n" - "-p <filename to output the process id>\n" - "\n", - argv [0]), - false); - } - - return true; - } - - bool - write_ior_file (CORBA::ORB_ptr orb, - CIAO::ExecutionManagerDaemon_ptr obj - ACE_ENV_ARG_DECL) - { - CORBA::String_var ior = - orb->object_to_string (obj - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - FILE* ior_output_file_ = - ACE_OS::fopen (ior_file_name_, "w"); - - if (ior_output_file_) - { - ACE_OS::fprintf (ior_output_file_, - "%s", - ior.in ()); - ACE_OS::fclose (ior_output_file_); - } - else - return false; - - return true; - } - - void - write_pid (void) - { - if (pid_file_name_ == 0) - return; - - FILE* pid_file = ACE_OS::fopen (pid_file_name_, "w"); - - if (pid_file) - { - ACE_OS::fprintf (pid_file, - "%i", - ACE_OS::getpid ()); - ACE_OS::fclose (pid_file); - } - } - - bool - register_with_ns (CORBA::ORB_ptr orb, - CIAO::ExecutionManagerDaemon_ptr obj - ACE_ENV_ARG_DECL) - { - // Naming Service related operations - CORBA::Object_var naming_context_object = - orb->resolve_initial_references ("NameService" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_context_object.in ()); - - // Initialize the Naming Sequence - CosNaming::Name name (1); - name.length (1); - - // String dup required for MSVC6 - name[0].id = CORBA::string_dup ("ExecutionManager"); - - // Register the servant with the Naming Service - try - { - // Register the servant with the Naming Service - naming_context->bind (name, obj); - } - catch (CosNaming::NamingContext::AlreadyBound &) - { - ACE_DEBUG ((LM_DEBUG, "Execution_Manager.cpp: Name already bound, rebinding....\n")); - naming_context->rebind (name, obj); - } - - return true; - } - - int - run_main (int argc, char *argv[]) - { - ACE_DECLARE_NEW_CORBA_ENV; - - ACE_TRY - { - CORBA::ORB_var orb = - CORBA::ORB_init (argc, - argv, - "" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (!parse_args (argc, argv)) - return -1; - - // Get reference to Root POA. - 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; - - - if (poa.in () == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) CIAO_ExecutionManager: " - "Nil POA panic error, returning \n"), - -1); - - // Create and install the CIAO Daemon servant - Execution_Manager_Impl *daemon_servant = 0; - ACE_NEW_RETURN (daemon_servant, - Execution_Manager_Impl(orb.in (), - poa.in (), - init_file_name), - -1); - - // Implicit activation - PortableServer::ServantBase_var safe_daemon (daemon_servant); - - CIAO::ExecutionManagerDaemon_var daemon = - daemon_servant->_this (); - - TAO::Utils::Implicit_Deactivator de (daemon_servant); - - ACE_TRY_CHECK; - - bool retval = false; - - if (register_with_ns_) - { - retval = - register_with_ns (orb.in (), - daemon.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - if (write_to_ior_) - { - retval = - write_ior_file (orb.in (), - daemon.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - - if (!retval) - return -1; - - // Activate POA manager - PortableServer::POAManager_var mgr = - poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - if (mgr.in () == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) CIAO_ExecutionManager: " - "Nil POA Manager error, returning \n"), - -1); - - mgr->activate (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - // End Deployment part - ACE_DEBUG ((LM_DEBUG, - "CIAO_ExecutionManager is running...\n")); - - write_pid (); - - // Run the main event loop for the ORB. - orb->run (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - // Forget the pointer. The POA will take care of it during - // destroy. - (void) de.release (); - - poa->destroy (1, - 1 - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - orb->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "CIAO_ExecutionManager::main\t\n"); - return -1; - } - ACE_ENDTRY; - - ACE_DEBUG ((LM_DEBUG, - "CIAO_ExecutionManager has closed\n")); - return 0; - } - - } -} - -int -main (int argc, char *argv[]) -{ - return CIAO::Execution_Manager::run_main (argc, - argv); -} |