summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordengg <dengg@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-03-29 04:42:46 +0000
committerdengg <dengg@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-03-29 04:42:46 +0000
commit3e1e3fe3590185d1aba3d8e6d7803e5fba99e4fd (patch)
tree9e217d669d045b9c6a800e0623439c2da9e039da
parent536e2cc9e954ee0a885f32a4ecb6c21c8ef12587 (diff)
downloadATCD-3e1e3fe3590185d1aba3d8e6d7803e5fba99e4fd.tar.gz
Wed Mar 29 04:40:58 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
-rw-r--r--TAO/CIAO/ChangeLog8
-rw-r--r--TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp38
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;