diff options
author | dengg <dengg@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-03-29 04:42:46 +0000 |
---|---|---|
committer | dengg <dengg@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-03-29 04:42:46 +0000 |
commit | 3e1e3fe3590185d1aba3d8e6d7803e5fba99e4fd (patch) | |
tree | 9e217d669d045b9c6a800e0623439c2da9e039da | |
parent | 536e2cc9e954ee0a885f32a4ecb6c21c8ef12587 (diff) | |
download | ATCD-3e1e3fe3590185d1aba3d8e6d7803e5fba99e4fd.tar.gz |
Wed Mar 29 04:40:58 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
-rw-r--r-- | TAO/CIAO/ChangeLog | 8 | ||||
-rw-r--r-- | TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp | 38 |
2 files changed, 45 insertions, 1 deletions
diff --git a/TAO/CIAO/ChangeLog b/TAO/CIAO/ChangeLog index 755b34014f1..9a0ec901ba6 100644 --- a/TAO/CIAO/ChangeLog +++ b/TAO/CIAO/ChangeLog @@ -1,3 +1,11 @@ +Wed Mar 29 04:40:58 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu> + + * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp + + Added the functionality to honor command line arguments + and service configuration file options defined through + RT-CCM descriptors. + Mon Mar 27 19:56:51 UTC 2006 Nanbor Wang <nanbor@exothermic.txcorp.com> * DAnCE/NodeApplication/NodeApplication.cpp (main): Added code to diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp index 33e712f19e5..c61191694dd 100644 --- a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp @@ -213,10 +213,46 @@ startLaunch (const Deployment::Properties & configProperty, "Unable to get node level infos")); } + CIAO::DAnCE::ServerResource *server_resource = 0; + for (CORBA::ULong k = 0; k < node_info->nodeapp_config.length (); ++k) + { + if (ACE_OS::strcmp (node_info->nodeapp_config[k].name.in (), + "CIAOServerResources") == 0) + { + node_info->nodeapp_config[0].value >>= server_resource; + break; // Ignore the rest of the NodeApp_Config values + } + } + // Now spawn the NodeApplication process. - // @@TODO: we need to pass arguments to the nodeapplication, ie naming service endpoints, if necessary + // @@TODO: we need to pass arguments to the nodeapplication, ie + // naming service endpoints, if necessary // (will) ACE_CString cmd_option (this->nodeapp_command_op_.in ()); + + if (server_resource) + { + // If command line options are specified through RTCCM descriptors, + // then we should honor these command line options as well. + for (CORBA::ULong arg_i = 0; + arg_i < (*server_resource).args.length (); + ++arg_i) + { + cmd_option += " "; // space between command line args + cmd_option += (*server_resource).args[arg_i].in (); + } + + // If service configuration file is specified through RTCCM + // descriptors, then we should honor it as well. + if (ACE_OS::strcmp ((*server_resource).svcconf.in (), + "") != 0) + { + cmd_option += " -ORBSvcConf "; + cmd_option += (*server_resource).svcconf.in (); + } + } + + Deployment::NodeApplication_var tmp = create_node_application (cmd_option.c_str () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; |