From 642f44702419ebb6ae2220d9a61bce50b0daabd3 Mon Sep 17 00:00:00 2001 From: "William R. Otte" Date: Thu, 2 Jun 2005 19:41:35 +0000 Subject: *** empty log message *** --- .../NodeApplicationManager_Impl.cpp | 12 +++--- .../NodeApplicationManager_Impl.h | 2 +- TAO/CIAO/DAnCE/NodeManager/NAM_Map.cpp | 14 +++---- TAO/CIAO/DAnCE/NodeManager/NAM_Map.h | 8 ++-- TAO/CIAO/DAnCE/NodeManager/NodeDaemon.mpc | 1 + TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp | 45 ++++++++++++---------- TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h | 12 +++++- TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp | 4 +- TAO/CIAO/DAnCE/ciao/Deployment.idl | 2 +- 9 files changed, 57 insertions(+), 43 deletions(-) diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp index 2b55ee886fa..21bfb34c39b 100644 --- a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp @@ -13,7 +13,7 @@ CIAO::NodeApplicationManager_Impl::~NodeApplicationManager_Impl (void) { } -Deployment::NodeApplicationManager_ptr +PortableServer::ObjectId CIAO::NodeApplicationManager_Impl::init ( const char *nodeapp_location, const CORBA::ULong delay, @@ -23,6 +23,8 @@ CIAO::NodeApplicationManager_Impl::init ( ACE_THROW_SPEC ((CORBA::SystemException, Deployment::InvalidProperty)) { + PortableServer::ObjectId_var oid; + ACE_TRY { if (nodeapp_location == 0) @@ -41,9 +43,8 @@ CIAO::NodeApplicationManager_Impl::init ( this->callback_poa_ = PortableServer::POA::_duplicate (callback_poa); // Activate the ourself. - PortableServer::ObjectId_var oid - = this->poa_->activate_object (this - ACE_ENV_ARG_PARAMETER); + oid = this->poa_->activate_object (this + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; CORBA::Object_var obj = @@ -67,8 +68,7 @@ CIAO::NodeApplicationManager_Impl::init ( ACE_CHECK_RETURN (Deployment::NodeApplicationManager::_nil ()); //return this object reference - return - Deployment::NodeApplicationManager::_duplicate (this->objref_.in ()); + return oid.in (); } void diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h index a7d18ffee43..af76f2020ff 100644 --- a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h @@ -92,7 +92,7 @@ namespace CIAO * * @return NodeApplicationManager_ptr. **/ - virtual Deployment::NodeApplicationManager_ptr + virtual PortableServer::ObjectId init (const char *nodeapp_location, const CORBA::ULong delay, const Deployment::DeploymentPlan & plan, diff --git a/TAO/CIAO/DAnCE/NodeManager/NAM_Map.cpp b/TAO/CIAO/DAnCE/NodeManager/NAM_Map.cpp index 788676c2a0f..fa6388c5081 100644 --- a/TAO/CIAO/DAnCE/NodeManager/NAM_Map.cpp +++ b/TAO/CIAO/DAnCE/NodeManager/NAM_Map.cpp @@ -21,24 +21,24 @@ namespace CIAO bool NAM_Map::insert_nam (const ACE_CString &str, - ::PortableServer::ObjectId_ptr oid) + const PortableServer::ObjectId &oid) { - return (this->map_.bind (str, oid) == 0) + return (this->map_.bind (str, oid) == 0); } - ::PortableServer::ObjectId_ptr + ::PortableServer::ObjectId NAM_Map::get_nam (const ACE_CString &str) { - MAP::ENTRY entry; + MAP::ENTRY *entry; if (this->map_.find (str, entry) != 0) - return ::PortableServer::ObjectId::_nil (); + return ::PortableServer::ObjectId (); - return ::PortableServer::ObjectId::duplicate (entry.int_id.in ()); + return entry->int_id_.in (); } bool - NAM_Map::remove_nam (const PortableServer::ObjectId_ptr oid) + NAM_Map::remove_nam (const PortableServer::ObjectId &oid) { for (Iterator i = this->map_.begin (); i != this->map_.end (); diff --git a/TAO/CIAO/DAnCE/NodeManager/NAM_Map.h b/TAO/CIAO/DAnCE/NodeManager/NAM_Map.h index 5af6d33b8f4..099fbacdbd8 100644 --- a/TAO/CIAO/DAnCE/NodeManager/NAM_Map.h +++ b/TAO/CIAO/DAnCE/NodeManager/NAM_Map.h @@ -16,7 +16,7 @@ #include "ace/Hash_Map_Manager.h" #include "ciao/DeploymentC.h" #include "ace/SString.h" - +#include "tao/PortableServer/PortableServer.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ @@ -41,14 +41,14 @@ namespace CIAO /// Insert a NAM OID into the collection bool insert_nam (const ACE_CString &str, - ::PortableServer::ObjectId_ptr oid); + const PortableServer::ObjectId &oid); /// Get a specified NAM. - ::PortableServer::ObjectId_ptr + ::PortableServer::ObjectId get_nam (const ACE_CString &str); /// Remove a nam from the map, given its oid. - bool remove_nam (const PortableServer::ObjectId_ptr oid); + bool remove_nam (const PortableServer::ObjectId &oid); private: typedef diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon.mpc b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon.mpc index e3e6e3bac78..3003e9d91c4 100644 --- a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon.mpc +++ b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon.mpc @@ -27,5 +27,6 @@ project(Node_Daemon): ciao_deployment_stub, ciao_deployment_svnt, ciao_server_dn NodeDaemonS.cpp NodeDaemon_Impl.cpp Node_Daemon.cpp + NAM_Map.cpp } } diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp index af5eab30a9e..fea8a97a957 100644 --- a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp +++ b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp @@ -14,10 +14,19 @@ CIAO::NodeDaemon_Impl::NodeDaemon_Impl (const char *name, name_ (CORBA::string_dup (name)), nodeapp_location_ (CORBA::string_dup (nodapp_loc)), callback_poa_ (PortableServer::POA::_nil ()), - spawn_delay_ (spawn_delay), - manager_ (Deployment::NodeApplicationManager::_nil ()) + spawn_delay_ (spawn_delay) +{ +} + +CIAO::NodeDaemon_Impl::~NodeDaemon_Impl () +{ + +} + +void +CIAO::NodeDaemon_Impl::init (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) { - ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { //create the call back poa for NAM. @@ -36,18 +45,11 @@ CIAO::NodeDaemon_Impl::NodeDaemon_Impl (const char *name, ACE_CATCHANY { ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "NodeDaemon_Impl::constructor\t\n"); - // @@ This is bogus and will not work with emulated exceptions - // -- Bala + "NodeDaemon_Impl::init\t\n"); ACE_RE_THROW; } ACE_ENDTRY; - ACE_CHECK; -} - -CIAO::NodeDaemon_Impl::~NodeDaemon_Impl () -{ - + ACE_CHECK; } PortableServer::POA_ptr @@ -100,7 +102,7 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan { ACE_TRY { - if (!this->map_.is_available (plan.uuid.in ())) + if (!this->map_.is_available (plan.UUID.in ())) { //Implementation undefined. @@ -116,7 +118,7 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan //@@ Note: after the init call the servant ref count would // become 2. so we can leave the safeservant along and be // dead. Also note that I added - CORBA::ObjectId_var oid = + PortableServer::ObjectId_var oid = app_mgr->init (this->nodeapp_location_, this->spawn_delay_, plan, @@ -124,7 +126,7 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - this->map_.insert_nam (plan.uuid.in (), oid.in ()); + this->map_.insert_nam (plan.UUID.in (), oid.in ()); /* if (CORBA::is_nil (this->manager_.in ())) @@ -139,13 +141,14 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan } CORBA::Object_var obj = - this->poa_->id_to_reference (this->map_.get_nam (plan.uuid.in ())); + 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 ()); } - ACE_CATCH (PortableServer::ObjectNotActive) + ACE_CATCH (PortableServer::POA::ObjectNotActive, ex) { ACE_THROW (Deployment::StartError ()); } @@ -181,20 +184,20 @@ CIAO::NodeDaemon_Impl::destroyManager this->map_.remove_nam (id); } - ACE_CATCH (PortableServer::WrongAdapter) + ACE_CATCH (PortableServer::POA::WrongAdapter, ex) { ACE_ERROR ((LM_ERROR, "NodeDaemon_Impl::destroyManager: EXCEPTION - " "Invalid reference passed to destroyManager\n")); - ACE_THROW (Deployment::InvalidReference); + ACE_THROW (::Deployment::InvalidReference ()); } - ACE_CATCH (PortableServer::ObjectNotActive) + ACE_CATCH (PortableServer::POA::ObjectNotActive, ex) { ACE_ERROR ((LM_ERROR, "NodeDaemon_Impl::destroyManager: EXCEPTION - " " asked to destroy an already inactive object.\n")); - ACE_THROW (Deployment::InvalidReference); + ACE_THROW (::Deployment::InvalidReference ()); } ACE_CATCHANY { diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h index 2c936a56979..f9ae5df23b5 100644 --- a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h +++ b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h @@ -32,6 +32,7 @@ # pragma warning (disable:4250) #endif /* _MSC_VER */ +#include "NAM_Map.h" namespace CIAO { @@ -57,7 +58,11 @@ namespace CIAO const char * nodeapp_loc, int spawn_delay) ACE_THROW_SPEC ((CORBA::SystemException)); - + + /// Initializes the NodeDaemon. + virtual void init (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); + /// POA operation.. virtual PortableServer::POA_ptr _default_POA (void); @@ -89,7 +94,8 @@ namespace CIAO destroyManager (Deployment::NodeApplicationManager_ptr appManager ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException, - Deployment::StopError)); + Deployment::StopError, + Deployment::InvalidReference)); protected: /// Since this class is reference counted, making this @@ -119,6 +125,8 @@ namespace CIAO // Cache reference of last NodeAppManager // Deployment::NodeApplicationManager_var manager_; + + NAM_Map map_; }; } diff --git a/TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp b/TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp index 11dd2165059..01e636340df 100644 --- a/TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp +++ b/TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp @@ -177,7 +177,9 @@ main (int argc, char *argv[]) spawn_delay), -1); PortableServer::ServantBase_var safe_daemon (daemon_servant); - + + daemon_servant->init (); + // Implicit activation CIAO::NodeDaemon_var daemon = daemon_servant->_this (); diff --git a/TAO/CIAO/DAnCE/ciao/Deployment.idl b/TAO/CIAO/DAnCE/ciao/Deployment.idl index d9f428443b8..db4e226bf7f 100644 --- a/TAO/CIAO/DAnCE/ciao/Deployment.idl +++ b/TAO/CIAO/DAnCE/ciao/Deployment.idl @@ -95,7 +95,7 @@ module Deployment { NodeApplicationManager preparePlan (in DeploymentPlan plan) raises (StartError, PlanError); void destroyManager (in NodeApplicationManager appManager) - raises (StopError); + raises (StopError, InvalidReference); }; interface RepositoryManager { -- cgit v1.2.1