diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp')
-rw-r--r-- | TAO/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp b/TAO/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp index 4980b26ef2c..31ac4a31485 100644 --- a/TAO/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp +++ b/TAO/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp @@ -149,6 +149,14 @@ CIAO::NodeManager_Impl_Base::preparePlan (const Deployment::DeploymentPlan &plan ACE_TRY_CHECK; this->map_.insert_nam (plan.UUID.in (), oid.in ()); + + CORBA::Object_var obj = + this->poa_->id_to_reference (this->map_.get_nam (plan.UUID.in ())); + ACE_TRY_CHECK; + + // narrow should return a nil reference if it fails. + return + Deployment::NodeApplicationManager::_narrow (obj.in ()); } else { @@ -158,16 +166,22 @@ CIAO::NodeManager_Impl_Base::preparePlan (const Deployment::DeploymentPlan &plan "with UUID: %s\n", plan.UUID.in ())); } - } + CORBA::Object_var obj = + this->poa_->id_to_reference (this->map_.get_nam (plan.UUID.in ())); + ACE_TRY_CHECK; + + Deployment::NodeApplicationManager_var nam = + Deployment::NodeApplicationManager::_narrow (obj.in ()); + ACE_TRY_CHECK; - CORBA::Object_var obj = - this->poa_->id_to_reference (this->map_.get_nam (plan.UUID.in ())); - ACE_TRY_CHECK; + nam->reset_plan (plan); + ACE_TRY_CHECK; - // narrow should return a nil reference if it fails. - return - Deployment::NodeApplicationManager::_narrow (obj.in ()); + // Potentially we could reset many other configuration settings + // such as command line options, service configuration file, etc. + return nam._retn (); + } } ACE_CATCH (PortableServer::POA::ObjectNotActive, ex) { |