summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornilabjar <nilabjar@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-12-20 16:02:37 +0000
committernilabjar <nilabjar@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2007-12-20 16:02:37 +0000
commit263a511bcb7a3038587f9adce1bb59058ecb6a24 (patch)
tree087967a89fb645c220a9933cbf0c6bf93d280b40
parent3d32f4a96bc1a6b2ce9cac170fb9ab377e2655ea (diff)
downloadATCD-263a511bcb7a3038587f9adce1bb59058ecb6a24.tar.gz
Thu Dec 20 16:00:55 UTC 2007 Nishanth Shankaran <nshankar@nospam.com>
-rw-r--r--CIAO/CIAO_TAO.mwc2
-rw-r--r--CIAO/ChangeLog20
-rw-r--r--CIAO/DAnCE/NodeApplication/App_Monitor_Impl.cpp6
-rw-r--r--CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp4
-rw-r--r--CIAO/DAnCE/NodeManager/CIAO_Monitor.cpp2
-rw-r--r--CIAO/DAnCE/NodeManager/NA_Monitor.cpp85
-rw-r--r--CIAO/DAnCE/NodeManager/NM_Monitor.idl5
-rw-r--r--CIAO/DAnCE/NodeManager/NM_Monitor_Impl.cpp69
-rw-r--r--CIAO/DAnCE/NodeManager/NM_Monitor_Impl.h12
-rw-r--r--CIAO/DAnCE/TM_Daemon/DomainDataManager.cpp13
-rw-r--r--CIAO/DAnCE/TM_Daemon/TM_Daemon.cpp20
-rw-r--r--CIAO/DAnCE/TM_Daemon/TM_Daemon.h4
-rw-r--r--CIAO/DAnCE/TM_Daemon/TM_Daemon.idl9
-rw-r--r--CIAO/DAnCE/TM_Daemon/client.cpp2
-rw-r--r--CIAO/DAnCE/TM_Daemon/driver.cpp29
-rw-r--r--CIAO/examples/space/descriptors/NodeManagerMap_MT.dat8
16 files changed, 193 insertions, 97 deletions
diff --git a/CIAO/CIAO_TAO.mwc b/CIAO/CIAO_TAO.mwc
index 34f18232000..084bdc2acee 100644
--- a/CIAO/CIAO_TAO.mwc
+++ b/CIAO/CIAO_TAO.mwc
@@ -24,6 +24,4 @@ workspace {
ciao
ciaosvcs
tools
- tests
- examples
}
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index fbf76ba45e6..7e8a1ec6a77 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,23 @@
+Thu Dec 20 16:00:55 UTC 2007 Nishanth Shankaran <nshankar@nospam.com>
+
+ * CIAO_TAO.mwc:
+ * DAnCE/NodeApplication/App_Monitor_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ * DAnCE/NodeManager/NA_Monitor.cpp:
+ * DAnCE/NodeManager/NM_Monitor.idl:
+ * DAnCE/NodeManager/NM_Monitor_Impl.h:
+ * DAnCE/NodeManager/NM_Monitor_Impl.cpp:
+ * DAnCE/TM_Daemon/DomainDataManager.cpp:
+ * DAnCE/TM_Daemon/TM_Daemon.h:
+ * DAnCE/TM_Daemon/TM_Daemon.cpp:
+ * DAnCE/TM_Daemon/TM_Daemon.idl:
+ * DAnCE/TM_Daemon/client.cpp:
+ * DAnCE/TM_Daemon/driver.cpp:
+ * examples/space/descriptors/NodeManagerMap_MT.dat:
+
+ Checking in updates to the TM.
+
Thu Dec 13 16:50:49 UTC 2007 Nishanth Shankaran <nshankar@nospam.com>
* DAnCE/TM_Daemon/DomainDataManager.h:
diff --git a/CIAO/DAnCE/NodeApplication/App_Monitor_Impl.cpp b/CIAO/DAnCE/NodeApplication/App_Monitor_Impl.cpp
index fb249f57752..c4bf340ae19 100644
--- a/CIAO/DAnCE/NodeApplication/App_Monitor_Impl.cpp
+++ b/CIAO/DAnCE/NodeApplication/App_Monitor_Impl.cpp
@@ -33,7 +33,7 @@ App_Monitor_i::~App_Monitor_i (void)
{
// Add your implementation here
- // ACE_DEBUG ((LM_DEBUG, "Get App QoS returns "));
+// ACE_DEBUG ((LM_DEBUG, "Get App QoS returns "));
Deployment::QoSSpecifications *qos = new Deployment::QoSSpecifications ();
@@ -47,7 +47,7 @@ App_Monitor_i::~App_Monitor_i (void)
void App_Monitor_i::start_timing ()
{
this->tmp_elapsed_time_ = 0;
- // ACE_DEBUG ((LM_DEBUG , "\r\n Inside the START_TIMING %u\n\n", this->elapsed_time_));
+ ACE_DEBUG ((LM_DEBUG , "\r\n Inside the START_TIMING %u\n\n", this->elapsed_time_));
timer_.start ();
}
@@ -63,5 +63,5 @@ void App_Monitor_i::stop_timing ()
this->elapsed_time_ = usec;
- // ACE_DEBUG ((LM_DEBUG , "\r\n The time is %u\n\n", this->elapsed_time_));
+ ACE_DEBUG ((LM_DEBUG , "\r\n The time is %u\n\n", this->elapsed_time_));
}
diff --git a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
index b706794eb8f..a2997163269 100644
--- a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+++ b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
@@ -1152,8 +1152,12 @@ monitor_qos (const ::Deployment::DeploymentPlan & plan)
}
+// added for the time being ....
if (func.length () == 0)
+ return NULL;
+ else
return obj;
+
// Attach to the program
BPatch_process *appThread =
diff --git a/CIAO/DAnCE/NodeManager/CIAO_Monitor.cpp b/CIAO/DAnCE/NodeManager/CIAO_Monitor.cpp
index 607faa13269..79a24c0ff9e 100644
--- a/CIAO/DAnCE/NodeManager/CIAO_Monitor.cpp
+++ b/CIAO/DAnCE/NodeManager/CIAO_Monitor.cpp
@@ -76,7 +76,7 @@ int CIAO::CIAO_Monitor::stop ()
CORBA::Double current_load = 0;
- current_load = calculate_load ();
+// current_load = calculate_load ();
CORBA::Any any;
any <<= current_load;
diff --git a/CIAO/DAnCE/NodeManager/NA_Monitor.cpp b/CIAO/DAnCE/NodeManager/NA_Monitor.cpp
index ade554b50d2..77332eefe04 100644
--- a/CIAO/DAnCE/NodeManager/NA_Monitor.cpp
+++ b/CIAO/DAnCE/NodeManager/NA_Monitor.cpp
@@ -193,13 +193,6 @@ int CIAO::NA_Monitor::stop ()
::Deployment::Domain* CIAO::NA_Monitor::get_current_data ()
{
-// if (CIAO::debug_level () > 9)
-// {
-// ACE_DEBUG ((LM_DEBUG ,
-// "NA_Monitor::Inside the get_current_data of[%s]\n",
-// current_domain_->node[0].name.in ()));
-// }
-
// first get the process id for the NA from the controller
NodeManager_Impl_Base::Component_Ids cids =
@@ -219,45 +212,45 @@ int CIAO::NA_Monitor::stop ()
{
CORBA::Double current_load = 0;
- ACE_Unbounded_Set_Iterator<pid_data> iter_data (pid_set_);
-
- for (iter_data = pid_set_.begin ();
- iter_data != pid_set_.end ();
- iter_data++)
- {
- pid_t pid = (*iter_data).pid_;
- if (*iter == pid)
- this->past_data_ = (*iter_data).prev_data_;
- }
-
- auto_ptr<data> curr_data = read_data (*iter);
-
- current_load = ((curr_data->utime + curr_data->stime +
- curr_data->cutime + curr_data->cstime -
- past_data_.utime - past_data_.stime -
- past_data_.cutime - past_data_.cstime) *
- 100.0)
- / (this->interval_ * sysconf (_SC_CLK_TCK)) ;
-
- // ACE_DEBUG ((LM_INFO, "\n%3.2f\n", current_load));
-
- // std::cout << "\n The NA load is " << current_load << std::endl;
-
- if (current_load > 100 || current_load < 0)
- current_load = 100;
-
- this->past_data_ = *curr_data.get ();
-
-
- if (iter_data == pid_set_.end ())
- {
- pid_data new_data;
- new_data.pid_ = *iter;
- new_data.prev_data_ = *curr_data.get ();
- pid_set_.insert_tail (new_data);
- }
- else
- (*iter_data).prev_data_ = *curr_data.get ();
+// ACE_Unbounded_Set_Iterator<pid_data> iter_data (pid_set_);
+//
+// for (iter_data = pid_set_.begin ();
+// iter_data != pid_set_.end ();
+// iter_data++)
+// {
+// pid_t pid = (*iter_data).pid_;
+// if (*iter == pid)
+// this->past_data_ = (*iter_data).prev_data_;
+// }
+//
+// auto_ptr<data> curr_data = read_data (*iter);
+//
+// current_load = ((curr_data->utime + curr_data->stime +
+// curr_data->cutime + curr_data->cstime -
+// past_data_.utime - past_data_.stime -
+// past_data_.cutime - past_data_.cstime) *
+// 100.0)
+// / (this->interval_ * sysconf (_SC_CLK_TCK)) ;
+//
+// // ACE_DEBUG ((LM_INFO, "\n%3.2f\n", current_load));
+//
+// // std::cout << "\n The NA load is " << current_load << std::endl;
+//
+// if (current_load > 100 || current_load < 0)
+// current_load = 100;
+//
+// this->past_data_ = *curr_data.get ();
+//
+//
+// if (iter_data == pid_set_.end ())
+// {
+// pid_data new_data;
+// new_data.pid_ = *iter;
+// new_data.prev_data_ = *curr_data.get ();
+// pid_set_.insert_tail (new_data);
+// }
+// else
+// (*iter_data).prev_data_ = *curr_data.get ();
CORBA::Any any;
diff --git a/CIAO/DAnCE/NodeManager/NM_Monitor.idl b/CIAO/DAnCE/NodeManager/NM_Monitor.idl
index 6597e029084..586228b8a6e 100644
--- a/CIAO/DAnCE/NodeManager/NM_Monitor.idl
+++ b/CIAO/DAnCE/NodeManager/NM_Monitor.idl
@@ -4,10 +4,13 @@
module Onl_Monitor
{
+ typedef sequence<::Deployment::DeploymentPlan> Plan_Seq;
+
interface NM_Monitor
{
///
- void monitor_app_QoS (in ::Deployment::DeploymentPlan plan);
+ // void monitor_app_QoS (in ::Deployment::DeploymentPlan plan);
+ void monitor_app_QoS (in Plan_Seq plans);
/// gets the resource data , called by TM
::Deployment::Domain get_resource_data ();
diff --git a/CIAO/DAnCE/NodeManager/NM_Monitor_Impl.cpp b/CIAO/DAnCE/NodeManager/NM_Monitor_Impl.cpp
index 831084f6e41..5279508d584 100644
--- a/CIAO/DAnCE/NodeManager/NM_Monitor_Impl.cpp
+++ b/CIAO/DAnCE/NodeManager/NM_Monitor_Impl.cpp
@@ -46,39 +46,62 @@ Onl_Monitor_NM_Monitor_i::~Onl_Monitor_NM_Monitor_i (void)
{
}
+//void Onl_Monitor_NM_Monitor_i::monitor_app_QoS (
+// const ::Deployment::DeploymentPlan & plan)
void Onl_Monitor_NM_Monitor_i::monitor_app_QoS (
- const ::Deployment::DeploymentPlan & plan)
+ const ::Onl_Monitor::Plan_Seq & plans)
{
// ACE_DEBUG ((LM_DEBUG, "\t\nInside the monitor_app_QoS\n"));
- auto_ptr<Deployment::Domain> domain =
- controller_->get_initial_domain ();
+ for (CORBA::ULong i;i < plans.length ();i++)
+ {
+ ::Deployment::DeploymentPlan plan = plans[i];
+ auto_ptr<Deployment::Domain> domain =
+ controller_->get_initial_domain ();
// ACE_DEBUG ((LM_DEBUG, "\t\nAfter the get_initial_domain\n"));
- ACE_CString key (plan.UUID.in ());
- key += "@";
- key += domain->node[0].name.in ();
+ ACE_CString key (plan.UUID.in ());
+ key += "@";
+ key += domain->node[0].name.in ();
+
+ ACE_DEBUG ((LM_DEBUG, "The key is %s\n", key.c_str ()));
+
+ CORBA::Object_var obj;
+
+ try {
+ obj = node_manager_->get_NAM (key);
+ }
+ catch (CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("(%P|%t) NM_Monitor_i::monitor_app_QoS ()\t\n");
+ ACE_DEBUG ((LM_DEBUG, "TM_DAEMON::Does not have a Component in this Node"));
+ continue;
+ }
- ACE_DEBUG ((LM_DEBUG, "The key is %s\n", key.c_str ()));
+ try {
+ Deployment::NodeApplicationManager_var nam =
+ Deployment::NodeApplicationManager::_narrow (obj.in ());
- try {
- CORBA::Object_var obj = node_manager_->get_NAM (key);
+ ACE_DEBUG ((LM_DEBUG, "Making a call to monitor qos %s\n", key.c_str ()));
+ obj = nam->monitor_qos (plan);
- Deployment::NodeApplicationManager_var nam =
- Deployment::NodeApplicationManager::_narrow (obj.in ());
+ if (obj == NULL)
+ continue;
- ACE_DEBUG ((LM_DEBUG, "Making a call to monitor qos %s\n", key.c_str ()));
- obj = nam->monitor_qos (plan);
- ACE_DEBUG ((LM_DEBUG, "AFter Making a call to monitor qos \%s\n", key.c_str ()));
+ ACE_DEBUG ((LM_DEBUG, "AFter Making a call to monitor qos \%s\n", key.c_str ()));
- this->qos_monitor_ = Onl_Monitor::App_Monitor::_narrow (obj);
- }
- catch (CORBA::Exception& ex)
+ Onl_Monitor::App_Monitor_var qos_monitor;
+ qos_monitor = Onl_Monitor::App_Monitor::_narrow (obj);
+
+ this->qos_monitor_seq_.push_back (qos_monitor);
+ }
+ catch (CORBA::Exception& ex)
{
ex._tao_print_exception ("(%P|%t) NM_Monitor_i::monitor_app_QoS ()\t\n");
throw;
}
+ }
}
::Deployment::Domain * Onl_Monitor_NM_Monitor_i::get_resource_data (
@@ -96,11 +119,17 @@ void Onl_Monitor_NM_Monitor_i::monitor_app_QoS (
domainv = this->controller_->update_data_for_TM ();
- ::Deployment::QoSSpecifications_var qos_seq = this->qos_monitor_->get_app_QoS ();
+ // now get the qos data from each NAM
+ domainv->node[0].qos_seq.length (this->qos_monitor_seq_.size ());
- //time.stop ();
+ for (unsigned int i = 0;i < qos_monitor_seq_.size ();i++)
+ {
+ ::Deployment::QoSSpecifications_var qos_seq =
+ this->qos_monitor_seq_[i]->get_app_QoS ();
+
- domainv->node[0].qos_seq = qos_seq;
+ domainv->node[0].qos_seq[i] = (*qos_seq)[0];
+ }
// ACE_Time_Value tv;
//time.elapsed_time (tv);
diff --git a/CIAO/DAnCE/NodeManager/NM_Monitor_Impl.h b/CIAO/DAnCE/NodeManager/NM_Monitor_Impl.h
index 02ecfb0a1fe..f19d1076346 100644
--- a/CIAO/DAnCE/NodeManager/NM_Monitor_Impl.h
+++ b/CIAO/DAnCE/NodeManager/NM_Monitor_Impl.h
@@ -3,11 +3,13 @@
#define NM_MONITORI_H_
#include "NM_MonitorS.h"
+#include <vector>
#if !defined (ACE_LACKS_PRAGMA_ONCE)
#pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+using namespace std;
namespace CIAO
{
@@ -26,10 +28,10 @@ public:
// Destructor
virtual ~Onl_Monitor_NM_Monitor_i (void);
- virtual
+ virtual
void monitor_app_QoS (
- const ::Deployment::DeploymentPlan & plan);
-
+ const ::Onl_Monitor::Plan_Seq & plans);
+
virtual
::Deployment::Domain * get_resource_data (void);
@@ -46,7 +48,9 @@ protected:
CIAO::NodeManager_Impl_Base* node_manager_;
/// The Node Application Monitor
- Onl_Monitor::App_Monitor_var qos_monitor_;
+// Onl_Monitor::App_Monitor_var qos_monitor_;
+
+ vector<Onl_Monitor::App_Monitor_var> qos_monitor_seq_;
};
diff --git a/CIAO/DAnCE/TM_Daemon/DomainDataManager.cpp b/CIAO/DAnCE/TM_Daemon/DomainDataManager.cpp
index 37c9de99e73..c004dac8476 100644
--- a/CIAO/DAnCE/TM_Daemon/DomainDataManager.cpp
+++ b/CIAO/DAnCE/TM_Daemon/DomainDataManager.cpp
@@ -100,10 +100,15 @@ namespace CIAO
sub_domain.node[0] = initial_domain_.node[i];
try
{
+ ACE_DEBUG ((LM_DEBUG, "Calling join doamin on %s... ",
+ sub_domain.node[0].name.in ()));
node_manager->joinDomain (sub_domain, NULL, log);
+ ACE_DEBUG ((LM_DEBUG, "done!"));
}
catch (CORBA::Exception& ex)
{
+ ACE_DEBUG ((LM_DEBUG, "EXCEPTION CAUGHT!!!!!!\n"));
+
std::string msg = "TM::DomainDataManager.cpp:call_all_node_managers(): "
"Error in invoking join domaintrying on ";
msg += this->initial_domain_.node[i].name.in ();
@@ -281,7 +286,7 @@ namespace CIAO
// this->node_timers_[this->current_domain_.node[i].name.in ()]->start ();
this->node_monitors_[i]->sendc_get_resource_data (handler);
- // for synchronous calls
+ // for synchronous calls
// this->node_monitors_[i]->get_resource_data ();
}
this->condition_.wait ();
@@ -299,13 +304,13 @@ namespace CIAO
plans.length (plans_.size ());
// form the plans and send them over
- for (int i =0;i < plans_.size ();i++)
+ for (int i =0;i < plans_.size ();i++)
{
CIAO::Config_Handlers::XML_File_Intf intf (plans_[i].c_str ());
::Deployment::DeploymentPlan_var plan = intf.get_plan ();
plans[i] = plan;
- }
-
+ }
+
for (CORBA::ULong i = 0; i < this->node_monitors_.size (); ++i)
{
diff --git a/CIAO/DAnCE/TM_Daemon/TM_Daemon.cpp b/CIAO/DAnCE/TM_Daemon/TM_Daemon.cpp
index fd46d6bbe34..e40751dbfcc 100644
--- a/CIAO/DAnCE/TM_Daemon/TM_Daemon.cpp
+++ b/CIAO/DAnCE/TM_Daemon/TM_Daemon.cpp
@@ -20,8 +20,8 @@ namespace CIAO
{
- // ACE_DEBUG ((LM_DEBUG, "Making call to intf \n"));
- // ACE_DEBUG ((LM_DEBUG, "After call to get plan \n"));
+ ACE_DEBUG ((LM_DEBUG, "Making call to intf \n"));
+ ACE_DEBUG ((LM_DEBUG, "After call to get plan \n"));
// Now create the manager.
this->manager_ = new DomainDataManager (orb, mapping, domain, deployment_plans);
@@ -34,7 +34,7 @@ namespace CIAO
this->handler_ = Onl_Monitor::AMI_NM_MonitorHandler::_narrow (object.in ());
this->manager_->start_monitor_qos (this->handler_);
- // ACE_DEBUG ((LM_DEBUG, "Created the Daemon!\n"));
+ ACE_DEBUG ((LM_DEBUG, "Created the Daemon!\n"));
}
@@ -63,9 +63,18 @@ namespace CIAO
}
::Deployment::Domain*
- Daemon_impl::get_snapshot (void)
+ Daemon_impl::getInitialDomain ()
{
- // ACE_DEBUG ((LM_DEBUG, "In get_snapshot!\n"));
+ ACE_DEBUG ((LM_DEBUG, "In getInitialDomain!\n"));
+ ::Deployment::Domain_var domain = new ::Deployment::Domain ();
+ return domain._retn ();
+ }
+
+
+ ::Deployment::Domain*
+ Daemon_impl::getSnapshot ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "In getSnapshot!\n"));
::Deployment::Domain_var domain = new ::Deployment::Domain ();
std::map<std::string, ::Deployment::Node> temp =
this->manager_->get_all_data (this->handler_);
@@ -78,6 +87,7 @@ namespace CIAO
domain->node [i] = (*itr).second;
}
return domain._retn ();
+ // return 0;
}
void
diff --git a/CIAO/DAnCE/TM_Daemon/TM_Daemon.h b/CIAO/DAnCE/TM_Daemon/TM_Daemon.h
index 621dcc6f7e5..e11e5e83a62 100644
--- a/CIAO/DAnCE/TM_Daemon/TM_Daemon.h
+++ b/CIAO/DAnCE/TM_Daemon/TM_Daemon.h
@@ -27,7 +27,9 @@ namespace CIAO
virtual ~Daemon_impl ();
- virtual ::Deployment::Domain * get_snapshot (void);
+ virtual ::Deployment::Domain * getInitialDomain ();
+
+ virtual ::Deployment::Domain * getSnapshot ();
virtual void shutdown ();
diff --git a/CIAO/DAnCE/TM_Daemon/TM_Daemon.idl b/CIAO/DAnCE/TM_Daemon/TM_Daemon.idl
index 9d6cbb0e379..8e98038b7f1 100644
--- a/CIAO/DAnCE/TM_Daemon/TM_Daemon.idl
+++ b/CIAO/DAnCE/TM_Daemon/TM_Daemon.idl
@@ -1,4 +1,4 @@
-// $Id:$
+// $Id$
#include "DAnCE/Deployment/Deployment_TargetData.idl"
@@ -6,14 +6,17 @@ module CIAO
{
module TM_Daemon
{
-
interface Daemon
{
- ::Deployment::Domain get_snapshot ();
+ ::Deployment::Domain getInitialDomain ();
+
+ ::Deployment::Domain getSnapshot ();
oneway void shutdown ();
+
};
+
};
};
diff --git a/CIAO/DAnCE/TM_Daemon/client.cpp b/CIAO/DAnCE/TM_Daemon/client.cpp
index 8aee0713d06..e713b280831 100644
--- a/CIAO/DAnCE/TM_Daemon/client.cpp
+++ b/CIAO/DAnCE/TM_Daemon/client.cpp
@@ -85,7 +85,7 @@ namespace CIAO
{
// ACE_DEBUG ((LM_DEBUG, "%d Invoking get_snapshot ... ", i));
latency.start ();
- ::Deployment::Domain_var domain = daemon->get_snapshot ();
+ ::Deployment::Domain_var domain = daemon->getSnapshot ();
latency.stop ();
latency.dump ();
// ACE_DEBUG ((LM_DEBUG, "done!\n"));
diff --git a/CIAO/DAnCE/TM_Daemon/driver.cpp b/CIAO/DAnCE/TM_Daemon/driver.cpp
index ca7ce6ae2a1..90e6ac22f67 100644
--- a/CIAO/DAnCE/TM_Daemon/driver.cpp
+++ b/CIAO/DAnCE/TM_Daemon/driver.cpp
@@ -7,6 +7,7 @@
#include "Config_Handlers/XML_File_Intf.h"
#include "Config_Handlers/DnC_Dump.h"
#include "Client_Task.h"
+#include "orbsvcs/CosNamingC.h"
#include <vector>
#include <string>
@@ -19,6 +20,7 @@ namespace CIAO
{
const char *ior_output_file = "daemon.ior";
// const char *deploymentplan_file = 0;
+ char *name = 0;
vector<string> plans;
string aplan;
const char *domain_file = 0;
@@ -29,7 +31,7 @@ namespace CIAO
int
parse_args (int argc, char *argv[])
{
- ACE_Get_Opt get_opts (argc, argv, "o:n:k:d:m:");
+ ACE_Get_Opt get_opts (argc, argv, "o:n:k:d:m:N:");
int c;
while ((c = get_opts ()) != -1)
@@ -39,6 +41,12 @@ namespace CIAO
ior_output_file = get_opts.opt_arg ();
break;
+ case 'N':
+ name = get_opts.opt_arg ();
+ ACE_DEBUG ((LM_DEBUG, "Naming service enabled!\nName is %s\n", name));
+
+ break;
+
case 'n':
threads = (size_t) strtod (get_opts.opt_arg (), 0);
break;
@@ -46,7 +54,7 @@ namespace CIAO
case 'k':
// deploymentplan_file = get_opts.opt_arg ();
// ACE_DEBUG ((LM_DEBUG, "deploymentplan_file is %s.\n", deploymentplan_file));
- aplan = get_opts.opt_arg ();
+ aplan = get_opts.opt_arg ();
plans.push_back (aplan);
break;
@@ -67,6 +75,7 @@ namespace CIAO
"-d <Domain filename>\n"
"-m <CORBALOC filename>\n"
"-n <no of threads default = 2>"
+ "-N <name ro register with the naming service>"
"\n",
argv [0]),
-1);
@@ -89,6 +98,8 @@ namespace CIAO
{
try
{
+ ACE_DEBUG ((LM_DEBUG, "Now running the TM daemon!\n"));
+
CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
if (parse_args (argc, argv) != 0)
{
@@ -136,6 +147,20 @@ namespace CIAO
ACE_OS::fprintf (output_file, "%s", ior.in ());
ACE_OS::fclose (output_file);
+ if (name)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Now trying to bind to the naming service...."));
+ CORBA::Object_var naming_context_object =
+ orb->resolve_initial_references ("NameService");
+ CosNaming::NamingContext_var naming_context =
+ CosNaming::NamingContext::_narrow (naming_context_object.in ());
+ CosNaming::Name cos_name;
+ cos_name.length (1);
+ cos_name[0].id = ::CORBA::string_dup (name);
+ naming_context->rebind (cos_name, daemon.in ());
+ ACE_DEBUG ((LM_DEBUG, "done! Bound witht the naming service under %s.\n", name));
+
+ }
daemon_impl->run ();
}
diff --git a/CIAO/examples/space/descriptors/NodeManagerMap_MT.dat b/CIAO/examples/space/descriptors/NodeManagerMap_MT.dat
index 212e166c1f8..0ccf2da2611 100644
--- a/CIAO/examples/space/descriptors/NodeManagerMap_MT.dat
+++ b/CIAO/examples/space/descriptors/NodeManagerMap_MT.dat
@@ -1,8 +1,8 @@
blade33 corbaloc:iiop:blade33:30000/NodeManager
-blade36 corbaloc:iiop:blade36:30000/NodeManager
+blade36 corbaloc:iiop:blade31:30000/NodeManager
blade37 corbaloc:iiop:blade37:30000/NodeManager
blade38 corbaloc:iiop:blade38:30000/NodeManager
blade39 corbaloc:iiop:blade39:30000/NodeManager
-blade40 corbaloc:iiop:blade40:30000/NodeManager
-blade41 corbaloc:iiop:blade41:30000/NodeManager
-blade42 corbaloc:iiop:blade42:30000/NodeManager
+blade40 corbaloc:iiop:blade32:30000/NodeManager
+blade41 corbaloc:iiop:blade34:30000/NodeManager
+blade42 corbaloc:iiop:blade44:30000/NodeManager