summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-08-01 13:36:36 +0000
committervenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-08-01 13:36:36 +0000
commit6cd5beec77636a0be151c3aaaf035752443ed850 (patch)
tree32d46810faf2699de7e5a8055526c6e7a2e33200
parentca47a87d17a8f4ed8d7e8a1e547c6c20b351876c (diff)
downloadATCD-6cd5beec77636a0be151c3aaaf035752443ed850.tar.gz
*** empty log message ***
-rw-r--r--TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc2
-rw-r--r--TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp115
-rw-r--r--TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h75
-rw-r--r--TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.inl45
-rw-r--r--TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc4
-rw-r--r--TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp341
-rw-r--r--TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h69
-rw-r--r--TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl6
-rw-r--r--TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp65
-rw-r--r--TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h85
-rw-r--r--TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.inl57
-rw-r--r--TAO/CIAO/DAnCE/ciao/Container_Impl.cpp19
-rw-r--r--TAO/CIAO/DAnCE/ciao/Container_Impl.h5
-rw-r--r--TAO/CIAO/DAnCE/ciao/Container_Impl.inl6
-rw-r--r--TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.cpp3
-rw-r--r--TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.h5
-rw-r--r--TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.inl7
-rw-r--r--TAO/CIAO/DAnCE/ciao/Version.h2
18 files changed, 689 insertions, 222 deletions
diff --git a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
index de6accc8527..af7df494fcc 100644
--- a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+++ b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
@@ -2,7 +2,7 @@
// $Id$
project (DomainApplicationManager): ciao_deployment_svnt {
- after += Config_Handlers Node_Daemon
+ after += Config_Handlers Node_Daemon
sharedname = DomainApplicationManager
diff --git a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
index 8a1c5bf61bb..3cb78569a8a 100644
--- a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+++ b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
@@ -1,18 +1,28 @@
// $Id$
+
#include "DomainApplicationManager_Impl.h"
#include "NodeManager/NodeDaemonC.h"
#include "ace/Null_Mutex.h"
#include "ace/OS_NS_string.h"
#include "ace/SString.h"
//#include "Config_Handlers/DnC_Dump.h"
+#include "NodeManager/NodeDaemonC.h"
+#include "Container_Base.h"
+
+//@@ VS: Currently, the DAM relies on the deployment_config_ to supply
+//it with the NodeManager IOR that the latter obtained from the
+//deployment_file. With static configuration, the NodeManager is
+//created by the DAM, since it is not up and running already. Hence
+//the need to have this dependency on NodeManager implementation.
+#include "NodeManager/NodeDaemon_Impl.h"
#if !defined (__ACE_INLINE__)
# include "DomainApplicationManager_Impl.inl"
#endif /* __ACE_INLINE__ */
-CIAO::DomainApplicationManager_Impl::
-DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
+CIAO::DomainApplicationManager_Impl_Base::
+DomainApplicationManager_Impl_Base (CORBA::ORB_ptr orb,
PortableServer::POA_ptr poa,
Deployment::TargetManager_ptr manager,
const Deployment::DeploymentPlan & plan,
@@ -39,16 +49,16 @@ DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
ACE_CHECK;
}
-CIAO::DomainApplicationManager_Impl::~DomainApplicationManager_Impl ()
+CIAO::DomainApplicationManager_Impl_Base::~DomainApplicationManager_Impl_Base ()
{
if (CIAO::debug_level () > 1)
{
- ACE_DEBUG ((LM_DEBUG, "DomainApplicationManager destroyed\n"));
+ ACE_DEBUG ((LM_DEBUG, "Base_DomainApplicationManager destroyed\n"));
}
}
void
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
init (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Deployment::ResourceNotAvailable,
@@ -75,8 +85,7 @@ init (ACE_ENV_SINGLE_ARG_DECL)
{
// Get the NodeManager object reference.
::Deployment::NodeManager_var my_node_manager =
- this->deployment_config_.get_node_manager
- (this->node_manager_names_[i].c_str ());
+ this->get_node_manager (this->node_manager_names_[i].c_str ());
// Get the child deployment plan reference.
ACE_Hash_Map_Entry
@@ -111,7 +120,7 @@ init (ACE_ENV_SINGLE_ARG_DECL)
if (CORBA::is_nil (app_manager.in ()))
{
- ACE_DEBUG ((LM_DEBUG, "DomainAppMgr::init () received a nil\
+ ACE_DEBUG ((LM_DEBUG, "Base_DomainAppMgr::init () received a nil\
reference for NodeApplicationManager\n"));
ACE_THROW (Deployment::StartError ());
}
@@ -124,7 +133,7 @@ init (ACE_ENV_SINGLE_ARG_DECL)
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "DomainApplicationManager_Impl::init\t\n");
+ "DomainApplicationManager_Impl_Base::init\t\n");
ACE_RE_THROW;
}
ACE_ENDTRY;
@@ -132,7 +141,7 @@ init (ACE_ENV_SINGLE_ARG_DECL)
}
bool
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
get_plan_info (void)
{
CIAO_TRACE("CIAO::DomainApplicationManager_Impl::get_plan_info");
@@ -170,8 +179,7 @@ get_plan_info (void)
// Check if there is a corresponding NodeManager instance existing
// If not present return false
::Deployment::NodeManager_var mgr =
- this->deployment_config_.get_node_manager
- (this->plan_.instance [index].node.in ());
+ this->get_node_manager (this->plan_.instance [index].node.in ());
if (CORBA::is_nil (mgr.in ()))
return 0; /* Failure */
@@ -194,7 +202,7 @@ get_plan_info (void)
//@@ We should ask those spec writers to look at the code below, hopefully
// They will realize some thing.
int
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
split_plan (void)
{
CIAO_TRACE("CIAO::DomainApplicationManager_Impl::split_plan");
@@ -232,8 +240,7 @@ split_plan (void)
// Fill in the node_manager_ field.
artifacts.node_manager_ =
- this->deployment_config_.get_node_manager
- (this->node_manager_names_[i].c_str ());
+ this->get_node_manager (this->node_manager_names_[i].c_str ());
this->artifact_map_.bind (node_manager_names_[i], artifacts);
}
@@ -329,7 +336,7 @@ split_plan (void)
}
void
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
add_connections (const Deployment::Connections & incoming_conn)
{
CIAO_TRACE("CIAO::DomainApplicationManager_Impl::add_connections");
@@ -347,7 +354,7 @@ add_connections (const Deployment::Connections & incoming_conn)
}
void
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
startLaunch (const ::Deployment::Properties & configProperty,
::CORBA::Boolean start
ACE_ENV_ARG_DECL)
@@ -378,7 +385,7 @@ startLaunch (const ::Deployment::Properties & configProperty,
if (CORBA::is_nil (my_nam))
{
- ACE_DEBUG ((LM_DEBUG, "While starting launch, the DomainApplicationManager\
+ ACE_DEBUG ((LM_DEBUG, "While starting launch, the Base_DomainApplicationManager\
has a nil reference for NodeApplicationManager\n"));
ACE_THROW (Deployment::StartError ());
}
@@ -386,12 +393,16 @@ startLaunch (const ::Deployment::Properties & configProperty,
::Deployment::Connections_var retn_connections;
+ ACE_DEBUG ((LM_DEBUG, "before DAM to call NAM %s \n",
+ this->node_manager_names_[i].c_str ()));
// Obtained the returned NodeApplication object reference
// and the returned Connections variable.
::Deployment::Application_var temp_application =
my_nam->startLaunch (configProperty,
retn_connections.out (),
0); // This is a mistake. This should never be here.
+ ACE_DEBUG ((LM_DEBUG, "after DAM to call NAM %s \n",
+ this->node_manager_names_[i].c_str ()));
// Narrow down to NodeApplication object reference
::Deployment::NodeApplication_var my_na =
@@ -401,7 +412,7 @@ startLaunch (const ::Deployment::Properties & configProperty,
if (CORBA::is_nil (my_na.in ()))
{
- ACE_DEBUG ((LM_DEBUG, "The DomainApplicationManager receives a nil\
+ ACE_DEBUG ((LM_DEBUG, "The Base_DomainApplicationManager receives a nil\
reference of NodeApplication after calling\
startLaunch on NodeApplicationManager.\n"));
ACE_THROW (Deployment::StartError ());
@@ -419,16 +430,17 @@ startLaunch (const ::Deployment::Properties & configProperty,
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "DomainApplicationManager_Impl::startLaunch\t\n");
+ "DomainApplicationManager_Impl_Base::startLaunch\t\n");
ACE_RE_THROW;
}
ACE_ENDTRY;
ACE_CHECK;
+ ACE_DEBUG ((LM_DEBUG, "Exiting DAM::startLaunch, num_child_plans = %d\n", num_child_plans_));
}
void
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
finishLaunch (::CORBA::Boolean start
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
@@ -486,7 +498,7 @@ finishLaunch (::CORBA::Boolean start
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "DomainApplicationManager_Impl::finishLaunch\t\n");
+ "DomainApplicationManager_Impl_Base::finishLaunch\t\n");
ACE_RE_THROW;
}
ACE_ENDTRY;
@@ -495,7 +507,7 @@ finishLaunch (::CORBA::Boolean start
}
void
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
start (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
::Deployment::StartError))
@@ -578,7 +590,7 @@ start (ACE_ENV_SINGLE_ARG_DECL)
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "DomainApplicationManager_Impl::start\t\n");
+ "DomainApplicationManager_Impl_Base::start\t\n");
ACE_RE_THROW;
}
ACE_ENDTRY;
@@ -587,7 +599,7 @@ start (ACE_ENV_SINGLE_ARG_DECL)
}
void
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
destroyApplication (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
::Deployment::StopError))
@@ -643,7 +655,7 @@ destroyApplication (ACE_ENV_SINGLE_ARG_DECL)
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "DomainApplicationManager_Impl::destroyApplication\t\n");
+ "DomainApplicationManager_Impl_Base::destroyApplication\t\n");
ACE_RE_THROW;
}
ACE_ENDTRY;
@@ -652,7 +664,7 @@ destroyApplication (ACE_ENV_SINGLE_ARG_DECL)
}
void
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
destroyManager (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Deployment::StopError))
@@ -685,7 +697,7 @@ destroyManager (ACE_ENV_SINGLE_ARG_DECL)
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "DomainApplicationManager_Impl::destroyManager\t\n");
+ "DomainApplicationManager_Impl_Base::destroyManager\t\n");
ACE_RE_THROW;
}
ACE_ENDTRY;
@@ -695,7 +707,7 @@ destroyManager (ACE_ENV_SINGLE_ARG_DECL)
// Returns the DeploymentPlan associated with this ApplicationManager.
::Deployment::DeploymentPlan *
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
getPlan (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
@@ -711,7 +723,7 @@ getPlan (ACE_ENV_SINGLE_ARG_DECL)
}
Deployment::Connections *
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
get_outgoing_connections (const Deployment::DeploymentPlan &plan)
{
CIAO_TRACE("CIAO::DomainApplicationManager_Impl::get_outgoing_connections");
@@ -732,7 +744,7 @@ get_outgoing_connections (const Deployment::DeploymentPlan &plan)
}
bool
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
get_outgoing_connections_i (const char * instname,
Deployment::Connections & retv)
{
@@ -820,7 +832,7 @@ get_outgoing_connections_i (const char * instname,
}
void
-CIAO::DomainApplicationManager_Impl::
+CIAO::DomainApplicationManager_Impl_Base::
dump_connections (const ::Deployment::Connections & connections)
{
CIAO_TRACE("CIAO::DomainApplicationManager_Impl::dump_connections");
@@ -843,3 +855,42 @@ dump_connections (const ::Deployment::Connections & connections)
ACE_DEBUG ((LM_DEBUG, "endpoint: \n"));
}
}
+
+
+CIAO::Static_DomainApplicationManager_Impl::
+Static_DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ Deployment::TargetManager_ptr manager,
+ const Deployment::DeploymentPlan & plan,
+ const char * deployment_file,
+ Static_Config_EntryPoints_Maps* static_config_entrypoints_maps)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ : DomainApplicationManager_Impl_Base (orb, poa, manager, plan, deployment_file)
+{
+ Static_NodeDaemon_Impl *static_node_daemon_impl;
+ // Create and install the CIAO Daemon servant
+ static_node_daemon_impl =
+ new CIAO::Static_NodeDaemon_Impl("NodeDaemon",
+ orb,
+ poa,
+ "", //exe location
+ 0, //spawn delay
+ static_config_entrypoints_maps);
+ // Activate the ourself.
+ PortableServer::ObjectId_var oid
+ = this->poa_->activate_object (static_node_daemon_impl
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ CORBA::Object_var obj =
+ this->poa_->id_to_reference (oid.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ // And cache the object reference.
+ this->static_node_manager_ =
+ Deployment::NodeManager::_narrow (obj.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+}
+
diff --git a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
index dbf6364a60b..01541c28de9 100644
--- a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+++ b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
@@ -13,6 +13,7 @@
*/
//=====================================================================
+
#ifndef CIAO_DOMAINAPPLICATIONMANAGER_IMPL_H
#define CIAO_DOMAINAPPLICATIONMANAGER_IMPL_H
#include /**/ "ace/pre.h"
@@ -47,7 +48,7 @@ namespace CIAO
* deploying an application on the domain level, i.e. across
* nodes. It specializes the ApplicationManager abstract interface.
*/
- class DomainApplicationManager_Export DomainApplicationManager_Impl
+ class DomainApplicationManager_Export DomainApplicationManager_Impl_Base
: public virtual POA_Deployment::DomainApplicationManager
{
public:
@@ -65,11 +66,11 @@ namespace CIAO
} Chained_Artifacts;
/// Constructor
- DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
- PortableServer::POA_ptr poa,
- Deployment::TargetManager_ptr manager,
- const Deployment::DeploymentPlan &plan,
- const char * deployment_file)
+ DomainApplicationManager_Impl_Base (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ Deployment::TargetManager_ptr manager,
+ const Deployment::DeploymentPlan &plan,
+ const char * deployment_file)
ACE_THROW_SPEC ((CORBA::SystemException));
@@ -182,8 +183,8 @@ namespace CIAO
protected:
/// Destructor
- virtual ~DomainApplicationManager_Impl (void);
-
+ virtual ~DomainApplicationManager_Impl_Base (void);
+
/**
* (1) Parse the global deployment plan, get the total number of
* child plans included in the global plan, and get the list of
@@ -225,6 +226,9 @@ namespace CIAO
/// Dump connections, a static method
void dump_connections (const ::Deployment::Connections & connections);
+ virtual ::Deployment::NodeManager_ptr
+ get_node_manager (const char* name) = 0;
+
protected:
/// location of the Domainapplication
CORBA::String_var domainapp_path_;
@@ -284,6 +288,61 @@ namespace CIAO
::Deployment::Connections_var all_connections_;
};
+
+
+ /**
+ * @class DomainApplicationManager_Impl
+ *
+ */
+ class DomainApplicationManager_Impl
+ : public virtual DomainApplicationManager_Impl_Base
+ {
+ public:
+ /// Constructor
+ DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ Deployment::TargetManager_ptr manager,
+ const Deployment::DeploymentPlan &plan,
+ const char * deployment_file)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ protected:
+ /// Destructor
+ virtual ~DomainApplicationManager_Impl (void);
+
+ virtual ::Deployment::NodeManager_ptr get_node_manager (const char* name);
+ };
+
+ struct Static_Config_EntryPoints_Maps;
+
+ /**
+ * @class Static_DomainApplicationManager_Impl
+ *
+ */
+ class Static_DomainApplicationManager_Impl
+ : public virtual DomainApplicationManager_Impl_Base
+ {
+ public:
+ /// Constructor
+ Static_DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ Deployment::TargetManager_ptr manager,
+ const Deployment::DeploymentPlan &plan,
+ const char * deployment_file,
+ Static_Config_EntryPoints_Maps* static_config_entrypoints_maps)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ protected:
+ /// Destructor
+ virtual ~Static_DomainApplicationManager_Impl (void);
+
+ virtual ::Deployment::NodeManager_ptr get_node_manager (const char* name);
+
+ protected:
+ ::Deployment::NodeManager_var static_node_manager_;
+
+ };
+
}
#if defined (__ACE_INLINE__)
diff --git a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.inl b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.inl
index b50adfbc712..5ffd34609c1 100644
--- a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.inl
+++ b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.inl
@@ -2,15 +2,56 @@
//
// $Id$
+
+
ACE_INLINE const char *
-CIAO::DomainApplicationManager_Impl::get_uuid () const
+CIAO::DomainApplicationManager_Impl_Base::get_uuid () const
{
return this->uuid_;
}
ACE_INLINE void
-CIAO::DomainApplicationManager_Impl::set_uuid (const char * uuid)
+CIAO::DomainApplicationManager_Impl_Base::set_uuid (const char * uuid)
{
// Copy this uuid reference
this->uuid_ = CORBA::string_dup (uuid);
}
+
+ACE_INLINE
+CIAO::DomainApplicationManager_Impl::
+DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ Deployment::TargetManager_ptr manager,
+ const Deployment::DeploymentPlan & plan,
+ const char * deployment_file)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+ : DomainApplicationManager_Impl_Base (orb, poa, manager, plan, deployment_file)
+{
+}
+
+ACE_INLINE
+CIAO::DomainApplicationManager_Impl::
+~DomainApplicationManager_Impl ()
+{
+}
+
+ACE_INLINE ::Deployment::NodeManager_ptr
+CIAO::DomainApplicationManager_Impl::
+get_node_manager (const char* name)
+{
+ return this->deployment_config_.get_node_manager (name);
+}
+
+ACE_INLINE
+CIAO::Static_DomainApplicationManager_Impl::
+~Static_DomainApplicationManager_Impl ()
+{
+}
+
+ACE_INLINE ::Deployment::NodeManager_ptr
+CIAO::Static_DomainApplicationManager_Impl::
+get_node_manager (const char* name)
+{
+ ACE_UNUSED_ARG (name);
+ return ::Deployment::NodeManager::_duplicate (static_node_manager_.in ());
+}
diff --git a/TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc b/TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc
index 017d9c3837e..23c35fd5b4c 100644
--- a/TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc
+++ b/TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc
@@ -23,9 +23,9 @@ project(ExecutionManager): ciao_deployment_svnt, naming, ifr_client, ciao_server
exename = Execution_Manager
- after += DomainApplicationManager ExecutionManager_stub
+ after += DomainApplicationManager ExecutionManager_stub Node_Daemon
- libs += DomainApplicationManager ExecutionManager_stub
+ libs += DomainApplicationManager ExecutionManager_stub Node_Daemon
IDL_Files {
}
diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
index 1252878379d..cb65366d8c6 100644
--- a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+++ b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
@@ -1,20 +1,23 @@
// $Id$
+
#include "NodeApplicationManager_Impl.h"
#include "ace/Process.h"
#include "ace/OS_NS_stdio.h"
+#include "ciao/Container_Base.h"
+#include "ciao/NodeApplication_Impl.h"
#if !defined (__ACE_INLINE__)
# include "NodeApplicationManager_Impl.inl"
#endif /* __ACE_INLINE__ */
-CIAO::NodeApplicationManager_Impl::~NodeApplicationManager_Impl (void)
+CIAO::NodeApplicationManager_Impl_Base::~NodeApplicationManager_Impl_Base (void)
{
}
PortableServer::ObjectId
-CIAO::NodeApplicationManager_Impl::init (
+CIAO::NodeApplicationManager_Impl_Base::init (
const char *nodeapp_location,
const CORBA::ULong delay,
const Deployment::DeploymentPlan & plan,
@@ -61,7 +64,7 @@ CIAO::NodeApplicationManager_Impl::init (
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "NodeApplicationManager_Impl::init\t\n");
+ "NodeApplicationManager_Impl_Base::init\t\n");
ACE_RE_THROW;
}
ACE_ENDTRY;
@@ -72,7 +75,7 @@ CIAO::NodeApplicationManager_Impl::init (
}
void
-CIAO::NodeApplicationManager_Impl::
+CIAO::NodeApplicationManager_Impl_Base::
parse_config_value (ACE_CString & str
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
@@ -84,129 +87,8 @@ parse_config_value (ACE_CString & str
ACE_THROW ( CORBA::NO_IMPLEMENT() );
}
-Deployment::NodeApplication_ptr
-CIAO::NodeApplicationManager_Impl::
-create_node_application (const ACE_CString & options
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException,
- Deployment::ResourceNotAvailable,
- Deployment::StartError,
- Deployment::InvalidProperty))
-{
- CIAO_TRACE("CIAO::NodeApplicationManager_Impl::create_node_application");
- Deployment::NodeApplication_var retval;
- Deployment::Properties_var prop;
-
- ACE_NEW_THROW_EX (prop,
- Deployment::Properties,
- CORBA::INTERNAL ());
- ACE_CHECK_RETURN (Deployment::NodeApplication::_nil());
-
- // @@ Create a new callback servant.
- CIAO::NodeApplication_Callback_Impl * callback_servant = 0;
- ACE_NEW_THROW_EX (callback_servant,
- CIAO::NodeApplication_Callback_Impl (this->orb_.in (),
- this->callback_poa_.in (),
- this->objref_.in (),
- prop.in ()),
- CORBA::NO_MEMORY ());
- ACE_CHECK_RETURN (Deployment::NodeApplication::_nil());
-
- PortableServer::ServantBase_var servant_var (callback_servant);
- PortableServer::ObjectId_var cb_id
- = this->callback_poa_->activate_object (callback_servant
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (Deployment::NodeApplication::_nil());
-
- ACE_Process node_application;
- ACE_Process_Options p_options;
-
- ACE_TRY
- {
- CORBA::Object_var cb_obj =
- this->callback_poa_->id_to_reference (cb_id.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- CIAO::NodeApplication_Callback_var cb =
- CIAO::NodeApplication_Callback::_narrow (cb_obj.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- CORBA::String_var cb_ior =
- this->orb_->object_to_string (cb.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- // spawn the new NodeApplication.
- p_options.command_line ("%s -k %s"
- "%s",
- this->nodeapp_path_.c_str (),
- cb_ior.in (),
- options.c_str ());
-
- p_options.avoid_zombies (1);
-
- if (node_application.spawn (p_options) == -1)
- {
- if (CIAO::debug_level () > 1)
- ACE_DEBUG ((LM_ERROR, "Fail to spawn a NodeApplication process\n"));
- ACE_TRY_THROW (Deployment::ResourceNotAvailable ());
- }
-
- // wait for nodeApp to pass back its object reference. with a
- // timeout value. using perform_work and stuff.
-
- int looping = 1;
-
- ACE_Time_Value timeout (this->spawn_delay_, 0);
-
- while (looping)
- {
- this->orb_->perform_work (timeout
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- retval = callback_servant->get_nodeapp_ref ();
-
- if (timeout == ACE_Time_Value::zero || !CORBA::is_nil (retval.in ()))
- looping = 0;
- }
-
- if (CORBA::is_nil (retval.in ()))
- {
- if (CIAO::debug_level () > 1)
- ACE_DEBUG ((LM_ERROR, "Fail to acquire the NodeApplication object\n"));
-
- ACE_TRY_THROW (Deployment::ResourceNotAvailable ());
- }
-
- {
- //ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0);
- this->nodeapp_ = Deployment::NodeApplication::_duplicate (retval.in ());
- }
- }
- ACE_CATCHANY
- {
- this->callback_poa_->deactivate_object (cb_id.in ());
- ACE_TRY_CHECK;
-
- ACE_RE_THROW;
- }
- ACE_ENDTRY;
- ACE_CHECK_RETURN (Deployment::NodeApplication::_nil ());
-
- this->callback_poa_->deactivate_object (cb_id.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (Deployment::NodeApplication::_nil ());
-
- if (CIAO::debug_level () > 1)
- ACE_DEBUG ((LM_DEBUG, "CIAO::NodeApplicationManager_Impl::NodeApplication spawned!\n"));
-
- return retval._retn ();
-}
-
Deployment::Connections *
-CIAO::NodeApplicationManager_Impl::
+CIAO::NodeApplicationManager_Impl_Base::
create_connections (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Deployment::ResourceNotAvailable,
@@ -269,7 +151,7 @@ create_connections (ACE_ENV_SINGLE_ARG_DECL)
}
Deployment::Application_ptr
-CIAO::NodeApplicationManager_Impl::
+CIAO::NodeApplicationManager_Impl_Base::
startLaunch (const Deployment::Properties & configProperty,
Deployment::Connections_out providedReference,
CORBA::Boolean start
@@ -358,7 +240,7 @@ startLaunch (const Deployment::Properties & configProperty,
void
-CIAO::NodeApplicationManager_Impl::
+CIAO::NodeApplicationManager_Impl_Base::
destroyApplication (Deployment::Application_ptr app
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
@@ -378,3 +260,206 @@ destroyApplication (Deployment::Application_ptr app
return;
}
+
+
+CIAO::NodeApplicationManager_Impl::~NodeApplicationManager_Impl (void)
+{
+}
+
+CIAO::NodeApplicationManager_Impl::
+NodeApplicationManager_Impl (CORBA::ORB_ptr o,
+ PortableServer::POA_ptr p)
+ : NodeApplicationManager_Impl_Base (o, p)
+{
+}
+
+Deployment::NodeApplication_ptr
+CIAO::NodeApplicationManager_Impl::
+create_node_application (const ACE_CString & options
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Deployment::ResourceNotAvailable,
+ Deployment::StartError,
+ Deployment::InvalidProperty))
+{
+ CIAO_TRACE("CIAO::NodeApplicationManager_Impl::create_node_application");
+ Deployment::NodeApplication_var retval;
+ Deployment::Properties_var prop;
+
+ ACE_NEW_THROW_EX (prop,
+ Deployment::Properties,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (Deployment::NodeApplication::_nil());
+
+ // @@ Create a new callback servant.
+ CIAO::NodeApplication_Callback_Impl * callback_servant = 0;
+ ACE_NEW_THROW_EX (callback_servant,
+ CIAO::NodeApplication_Callback_Impl (this->orb_.in (),
+ this->callback_poa_.in (),
+ this->objref_.in (),
+ prop.in ()),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK_RETURN (Deployment::NodeApplication::_nil());
+
+ PortableServer::ServantBase_var servant_var (callback_servant);
+ PortableServer::ObjectId_var cb_id
+ = this->callback_poa_->activate_object (callback_servant
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (Deployment::NodeApplication::_nil());
+
+ ACE_Process node_application;
+ ACE_Process_Options p_options;
+
+ ACE_TRY
+ {
+ CORBA::Object_var cb_obj =
+ this->callback_poa_->id_to_reference (cb_id.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ CIAO::NodeApplication_Callback_var cb =
+ CIAO::NodeApplication_Callback::_narrow (cb_obj.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ CORBA::String_var cb_ior =
+ this->orb_->object_to_string (cb.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ // spawn the new NodeApplication.
+ p_options.command_line ("%s -k %s"
+ "%s",
+ this->nodeapp_path_.c_str (),
+ cb_ior.in (),
+ options.c_str ());
+
+ p_options.avoid_zombies (1);
+
+ if (node_application.spawn (p_options) == -1)
+ {
+ if (CIAO::debug_level () > 1)
+ ACE_DEBUG ((LM_ERROR, "Fail to spawn a NodeApplication process\n"));
+ ACE_TRY_THROW (Deployment::ResourceNotAvailable ());
+ }
+
+ // wait for nodeApp to pass back its object reference. with a
+ // timeout value. using perform_work and stuff.
+
+ int looping = 1;
+
+ ACE_Time_Value timeout (this->spawn_delay_, 0);
+
+ while (looping)
+ {
+ this->orb_->perform_work (timeout
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ retval = callback_servant->get_nodeapp_ref ();
+
+ if (timeout == ACE_Time_Value::zero || !CORBA::is_nil (retval.in ()))
+ looping = 0;
+ }
+
+ if (CORBA::is_nil (retval.in ()))
+ {
+ if (CIAO::debug_level () > 1)
+ ACE_DEBUG ((LM_ERROR, "Fail to acquire the NodeApplication object\n"));
+
+ ACE_TRY_THROW (Deployment::ResourceNotAvailable ());
+ }
+
+ {
+ //ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0);
+ this->nodeapp_ = Deployment::NodeApplication::_duplicate (retval.in ());
+ }
+ }
+ ACE_CATCHANY
+ {
+ this->callback_poa_->deactivate_object (cb_id.in ());
+ ACE_TRY_CHECK;
+
+ ACE_RE_THROW;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (Deployment::NodeApplication::_nil ());
+
+ this->callback_poa_->deactivate_object (cb_id.in () ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (Deployment::NodeApplication::_nil ());
+
+ if (CIAO::debug_level () > 1)
+ ACE_DEBUG ((LM_DEBUG, "CIAO::NodeApplicationManager_Impl::NodeApplication spawned!\n"));
+
+ return retval._retn ();
+}
+
+
+CIAO::Static_NodeApplicationManager_Impl::~Static_NodeApplicationManager_Impl (void)
+{
+}
+
+CIAO::Static_NodeApplicationManager_Impl::
+Static_NodeApplicationManager_Impl (CORBA::ORB_ptr o,
+ PortableServer::POA_ptr p,
+ Static_Config_EntryPoints_Maps* static_config_entrypoints_maps)
+ : NodeApplicationManager_Impl_Base (o, p),
+ static_config_entrypoints_maps_ (static_config_entrypoints_maps)
+{
+}
+
+Deployment::NodeApplication_ptr
+CIAO::Static_NodeApplicationManager_Impl::
+create_node_application (const ACE_CString & options
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Deployment::ResourceNotAvailable,
+ Deployment::StartError,
+ Deployment::InvalidProperty))
+{
+ ACE_UNUSED_ARG(options);
+
+ CIAO::NodeApplication_Impl *nodeapp_servant;
+
+ ACE_DEBUG ((LM_DEBUG, "create_static_node_application\n"));
+
+ ACE_NEW_RETURN (nodeapp_servant,
+ CIAO::NodeApplication_Impl (orb_.in (),
+ poa_.in (),
+ this->static_config_entrypoints_maps_),
+ Deployment::NodeApplication::_nil ()
+ );
+ if (nodeapp_servant->init (ACE_ENV_SINGLE_ARG_PARAMETER))
+ {
+ ACE_DEBUG ((LM_DEBUG, "NodeApplication Failed on creating and\
+ initializing the session container!"));
+ return Deployment::NodeApplication::_nil ();
+ }
+ ACE_TRY_CHECK;
+
+ // CONFIGURING NodeApplication
+ PortableServer::ObjectId_var nodeapp_oid
+ = poa_->activate_object (nodeapp_servant
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ CORBA::Object_var
+ obj = poa_->id_to_reference (nodeapp_oid.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ Deployment::NodeApplication_var nodeapp_obj =
+ Deployment::NodeApplication::_narrow (obj.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (CORBA::is_nil (nodeapp_obj.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Unable to activate NodeApplication object\n"));
+ return Deployment::NodeApplication::_nil ();
+ }
+
+ this->nodeapp_ = Deployment::NodeApplication::_duplicate (nodeapp_obj.in ());
+
+ return nodeapp_obj._retn ();
+}
diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
index 7ce8858be8e..b49c503d25b 100644
--- a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+++ b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
@@ -1,4 +1,6 @@
+
//$Id$
+
// -*- C++ -*-
//=============================================================================
@@ -36,12 +38,12 @@ namespace CIAO
/**
* @class NodeApplicationManager_Impl
*/
- class CIAO_NAM_Export NodeApplicationManager_Impl
+ class CIAO_NAM_Export NodeApplicationManager_Impl_Base
: public virtual POA_Deployment::NodeApplicationManager
{
public:
/// Constructor
- NodeApplicationManager_Impl (CORBA::ORB_ptr o,
+ NodeApplicationManager_Impl_Base (CORBA::ORB_ptr o,
PortableServer::POA_ptr p);
/*===========================================================
@@ -105,7 +107,7 @@ namespace CIAO
protected:
/// Destructor
- virtual ~NodeApplicationManager_Impl (void);
+ virtual ~NodeApplicationManager_Impl_Base (void);
// Internal help function to create new NodeApplicationProcess
virtual Deployment::NodeApplication_ptr
@@ -114,7 +116,7 @@ namespace CIAO
ACE_THROW_SPEC ((CORBA::SystemException,
Deployment::ResourceNotAvailable,
Deployment::StartError,
- Deployment::InvalidProperty));
+ Deployment::InvalidProperty))=0;
// Helper function to get the connection.
virtual Deployment::Connections *
@@ -176,6 +178,65 @@ namespace CIAO
// Synchronize access to the object set.
TAO_SYNCH_MUTEX lock_;
};
+
+ /**
+ * @class NodeApplicationManager_Impl
+ */
+ class NodeApplicationManager_Impl
+ : public virtual NodeApplicationManager_Impl_Base
+ {
+ public:
+ /// Constructor
+ NodeApplicationManager_Impl (CORBA::ORB_ptr o,
+ PortableServer::POA_ptr p);
+
+ protected:
+ /// Destructor
+ virtual ~NodeApplicationManager_Impl (void);
+
+ // Internal help function to create new NodeApplicationProcess
+ // Here we override it to create an in-process NodeApplication object
+ virtual Deployment::NodeApplication_ptr
+ create_node_application (const ACE_CString & options
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Deployment::ResourceNotAvailable,
+ Deployment::StartError,
+ Deployment::InvalidProperty));
+ };
+
+ struct Static_Config_EntryPoints_Maps;
+
+ /**
+ * @class Static_NodeApplicationManager_Impl
+ */
+ class Static_NodeApplicationManager_Impl
+ : public virtual NodeApplicationManager_Impl_Base
+ {
+ public:
+ /// Constructor
+ Static_NodeApplicationManager_Impl (CORBA::ORB_ptr o,
+ PortableServer::POA_ptr p,
+ Static_Config_EntryPoints_Maps* static_config_entrypoints_maps);
+
+ protected:
+ /// Destructor
+ virtual ~Static_NodeApplicationManager_Impl (void);
+
+ // Internal help function to create new NodeApplicationProcess
+ // Here we override it to create an in-process NodeApplication object
+ virtual Deployment::NodeApplication_ptr
+ create_node_application (const ACE_CString & options
+ ACE_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ Deployment::ResourceNotAvailable,
+ Deployment::StartError,
+ Deployment::InvalidProperty));
+
+ Static_Config_EntryPoints_Maps* static_config_entrypoints_maps_;
+
+ };
+
}
#if defined (__ACE_INLINE__)
diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl
index 24908a047a4..5a29debbb53 100644
--- a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl
+++ b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl
@@ -2,8 +2,8 @@
// $Id$
ACE_INLINE
-CIAO::NodeApplicationManager_Impl::
-NodeApplicationManager_Impl (CORBA::ORB_ptr o,
+CIAO::NodeApplicationManager_Impl_Base::
+NodeApplicationManager_Impl_Base (CORBA::ORB_ptr o,
PortableServer::POA_ptr p)
: orb_ (CORBA::ORB::_duplicate (o)),
poa_ (PortableServer::POA::_duplicate (p)),
@@ -20,7 +20,7 @@ NodeApplicationManager_Impl (CORBA::ORB_ptr o,
ACE_INLINE
Deployment::NodeApplicationManager_ptr
-CIAO::NodeApplicationManager_Impl::get_nodeapp_manager (void)
+CIAO::NodeApplicationManager_Impl_Base::get_nodeapp_manager (void)
{
return this->objref_.in ();
}
diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp
index ff4a2930dd9..cdbf97a8d34 100644
--- a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp
+++ b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp
@@ -1,9 +1,9 @@
// $Id$
#include "NodeDaemon_Impl.h"
-#include "../NodeApplicationManager/NodeApplicationManager_Impl.h"
+#include "ciao/Container_Base.h"
-CIAO::NodeDaemon_Impl::NodeDaemon_Impl (const char *name,
+CIAO::NodeDaemon_Impl_Base::NodeDaemon_Impl_Base (const char *name,
CORBA::ORB_ptr orb,
PortableServer::POA_ptr poa,
const char * nodapp_loc,
@@ -18,13 +18,9 @@ CIAO::NodeDaemon_Impl::NodeDaemon_Impl (const char *name,
{
}
-CIAO::NodeDaemon_Impl::~NodeDaemon_Impl ()
-{
-
-}
void
-CIAO::NodeDaemon_Impl::init (ACE_ENV_SINGLE_ARG_DECL)
+CIAO::NodeDaemon_Impl_Base::init (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
ACE_TRY
@@ -45,29 +41,37 @@ CIAO::NodeDaemon_Impl::init (ACE_ENV_SINGLE_ARG_DECL)
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "NodeDaemon_Impl::init\t\n");
+ "NodeDaemon_Impl_Base::constructor\t\n");
+ // @@ This is bogus and will not work with emulated exceptions
+ // -- Bala
ACE_RE_THROW;
}
ACE_ENDTRY;
ACE_CHECK;
}
+
+CIAO::NodeDaemon_Impl_Base::~NodeDaemon_Impl_Base ()
+{
+
+}
+
PortableServer::POA_ptr
-CIAO::NodeDaemon_Impl::_default_POA (void)
+CIAO::NodeDaemon_Impl_Base::_default_POA (void)
{
return PortableServer::POA::_duplicate (this->poa_.in ());
}
char *
-CIAO::NodeDaemon_Impl::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+CIAO::NodeDaemon_Impl_Base::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException))
{
return CORBA::string_dup (this->name_.in ());
}
void
-CIAO::NodeDaemon_Impl::shutdown (ACE_ENV_SINGLE_ARG_DECL)
+CIAO::NodeDaemon_Impl_Base::shutdown (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER);
@@ -75,7 +79,7 @@ CIAO::NodeDaemon_Impl::shutdown (ACE_ENV_SINGLE_ARG_DECL)
}
void
-CIAO::NodeDaemon_Impl::joinDomain (const Deployment::Domain & ,
+CIAO::NodeDaemon_Impl_Base::joinDomain (const Deployment::Domain & ,
Deployment::TargetManager_ptr ,
Deployment::Logger_ptr
ACE_ENV_ARG_DECL)
@@ -85,22 +89,22 @@ CIAO::NodeDaemon_Impl::joinDomain (const Deployment::Domain & ,
}
void
-CIAO::NodeDaemon_Impl::leaveDomain (ACE_ENV_SINGLE_ARG_DECL)
+CIAO::NodeDaemon_Impl_Base::leaveDomain (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
//Implementation undefined.
ACE_THROW (CORBA::NO_IMPLEMENT ());
}
-
Deployment::NodeApplicationManager_ptr
-CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan
+CIAO::NodeDaemon_Impl_Base::preparePlan (const Deployment::DeploymentPlan &plan
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
Deployment::StartError,
Deployment::PlanError))
{
CIAO_TRACE("CIAO::NodeDaemon_Impl::preparePlan");
+
ACE_TRY
{
if (!this->map_.is_available (plan.UUID.in ()))
@@ -113,11 +117,9 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan
}
//Implementation undefined.
- CIAO::NodeApplicationManager_Impl *app_mgr;
- ACE_NEW_THROW_EX (app_mgr,
- CIAO::NodeApplicationManager_Impl (this->orb_.in (),
- this->poa_.in ()),
- CORBA::NO_MEMORY ());
+ CIAO::NodeApplicationManager_Impl_Base *app_mgr;
+ app_mgr = create_node_app_manager (this->orb_.in (), this->poa_.in ()
+ ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
PortableServer::ServantBase_var safe (app_mgr);
@@ -160,11 +162,11 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan
Deployment::NodeApplicationManager::_nil ());
}
ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "(%P|%t) NodeDaemon_Impl::preparePlan\t\n");
- ACE_RE_THROW;
- }
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "NodeDaemon_Impl_Base::preparePlan\t\n");
+ ACE_RE_THROW;
+ }
ACE_ENDTRY;
ACE_CHECK_RETURN (Deployment::NodeApplicationManager::_nil ());
@@ -172,7 +174,7 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan
}
void
-CIAO::NodeDaemon_Impl::destroyManager
+CIAO::NodeDaemon_Impl_Base::destroyManager
(Deployment::NodeApplicationManager_ptr manager
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
@@ -217,10 +219,19 @@ CIAO::NodeDaemon_Impl::destroyManager
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "NodeDaemon_Impl::destroyManager\t\n");
+ "NodeDaemon_Impl_Base::destroyManager\t\n");
ACE_RE_THROW;
}
ACE_ENDTRY;
}
+
+CIAO::NodeDaemon_Impl::~NodeDaemon_Impl ()
+{
+}
+
+CIAO::Static_NodeDaemon_Impl::~Static_NodeDaemon_Impl ()
+{
+}
+
diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h
index 3524c57e8fc..113fd0b9bbc 100644
--- a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h
+++ b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h
@@ -22,6 +22,7 @@
#include /**/ "ace/pre.h"
#include "NodeDaemonS.h"
+#include "NodeApplicationManager/NodeApplicationManager_Impl.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -34,6 +35,7 @@
#include "NAM_Map.h"
+
namespace CIAO
{
/**
@@ -45,13 +47,15 @@ namespace CIAO
* This class implements the CIAO:NodeDaemon interface.
*
*/
- class NodeDaemon_Impl
+ class NodeApplicationManager_Impl_Base;
+
+ class NodeDaemon_Impl_Base
: public virtual POA_CIAO::NodeDaemon
{
public:
/// Constructor
- NodeDaemon_Impl (const char *name,
+ NodeDaemon_Impl_Base (const char *name,
CORBA::ORB_ptr orb,
PortableServer::POA_ptr p,
const char * nodeapp_loc,
@@ -102,7 +106,13 @@ namespace CIAO
/// through the reference counting mechanism (i.e. to
/// disallow calling operator delete() on an instance of
/// this class.
- virtual ~NodeDaemon_Impl (void);
+ virtual ~NodeDaemon_Impl_Base (void);
+
+ virtual ::CIAO::NodeApplicationManager_Impl_Base *
+ create_node_app_manager (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))=0;
/// Keep a pointer to the managing ORB serving this servant.
CORBA::ORB_var orb_;
@@ -127,6 +137,75 @@ namespace CIAO
NAM_Map map_;
};
+
+ /**
+ * @class NodeDaemon_Impl
+ *
+ */
+ class NodeDaemon_Impl
+ : public virtual NodeDaemon_Impl_Base
+ {
+ public:
+
+ /// Constructor
+ NodeDaemon_Impl (const char *name,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr p,
+ const char * nodeapp_loc,
+ int spawn_delay);
+
+ protected:
+ /// Since this class is reference counted, making this
+ /// destructor protected to enforce proper memory managment
+ /// through the reference counting mechanism (i.e. to
+ /// disallow calling operator delete() on an instance of
+ /// this class.
+ virtual ~NodeDaemon_Impl (void);
+
+ virtual ::CIAO::NodeApplicationManager_Impl_Base *
+ create_node_app_manager (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+ };
+
+ class NodeApplicationManager_Impl;
+ struct Static_Config_EntryPoints_Maps;
+
+ /**
+ * @class Static_NodeDaemon_Impl
+ *
+ */
+ class Static_NodeDaemon_Impl
+ : public virtual NodeDaemon_Impl_Base
+ {
+ public:
+
+ /// Constructor
+ Static_NodeDaemon_Impl (const char *name,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr p,
+ const char * nodeapp_loc,
+ int spawn_delay,
+ Static_Config_EntryPoints_Maps* static_config_entrypoints_maps
+ );
+
+ protected:
+ /// Since this class is reference counted, making this
+ /// destructor protected to enforce proper memory managment
+ /// through the reference counting mechanism (i.e. to
+ /// disallow calling operator delete() on an instance of
+ /// this class.
+ virtual ~Static_NodeDaemon_Impl (void);
+
+ virtual ::CIAO::NodeApplicationManager_Impl_Base *
+ create_node_app_manager (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ Static_Config_EntryPoints_Maps* static_config_entrypoints_maps_;
+ };
}
#if defined(_MSC_VER)
diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.inl b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.inl
index 6318deb79a0..b25ca5f53de 100644
--- a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.inl
+++ b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.inl
@@ -1,2 +1,59 @@
/* -*- C++ -*- */
// $Id$
+
+ACE_INLINE
+CIAO::NodeDaemon_Impl::
+NodeDaemon_Impl (const char *name,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const char * nodapp_loc,
+ int spawn_delay)
+ : NodeDaemon_Impl_Base (name, orb, poa, nodapp_loc, spawn_delay)
+{}
+
+
+ACE_INLINE
+::CIAO::NodeApplicationManager_Impl_Base *
+::CIAO::NodeDaemon_Impl::
+create_node_app_manager (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ CIAO::NodeApplicationManager_Impl_Base *app_mgr;
+ ACE_NEW_THROW_EX (app_mgr,
+ CIAO::NodeApplicationManager_Impl (orb,
+ poa),
+ CORBA::NO_MEMORY ());
+ return app_mgr;
+}
+
+ACE_INLINE
+CIAO::Static_NodeDaemon_Impl::
+Static_NodeDaemon_Impl (const char *name,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const char * nodapp_loc,
+ int spawn_delay,
+ Static_Config_EntryPoints_Maps* static_config_entrypoints_maps)
+ : NodeDaemon_Impl_Base (name, orb, poa, nodapp_loc, spawn_delay),
+ static_config_entrypoints_maps_ (static_config_entrypoints_maps)
+{}
+
+ACE_INLINE
+::CIAO::NodeApplicationManager_Impl_Base *
+::CIAO::Static_NodeDaemon_Impl::
+create_node_app_manager (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ CIAO::NodeApplicationManager_Impl_Base *app_mgr;
+ ACE_NEW_THROW_EX (app_mgr,
+ CIAO::Static_NodeApplicationManager_Impl (orb,
+ poa,
+ this->static_config_entrypoints_maps_),
+ CORBA::NO_MEMORY ());
+ return app_mgr;
+}
+
diff --git a/TAO/CIAO/DAnCE/ciao/Container_Impl.cpp b/TAO/CIAO/DAnCE/ciao/Container_Impl.cpp
index 97a1006fd18..c3a4d479196 100644
--- a/TAO/CIAO/DAnCE/ciao/Container_Impl.cpp
+++ b/TAO/CIAO/DAnCE/ciao/Container_Impl.cpp
@@ -41,10 +41,21 @@ CIAO::Container_Impl::init (const ::Deployment::Properties &properties
// @@Jai, what is the condition to create an upgradeable container?
// Where is it getting created and how? Need to address that.
- ACE_NEW_THROW_EX (this->container_,
- CIAO::Session_Container (this->orb_.in (), this),
- CORBA::INTERNAL ());
- ACE_CHECK_RETURN (-1);
+ if (this->static_entrypts_maps_ == 0)
+ {
+ ACE_NEW_THROW_EX (this->container_,
+ CIAO::Session_Container (this->orb_.in (), this),
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (-1);
+ }
+ else
+ {
+ ACE_NEW_THROW_EX (this->container_,
+ CIAO::Session_Container (this->orb_.in (), this, 1,
+ this->static_entrypts_maps_),
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (-1);
+ }
return this->container_->init (0,
0
diff --git a/TAO/CIAO/DAnCE/ciao/Container_Impl.h b/TAO/CIAO/DAnCE/ciao/Container_Impl.h
index 428b47c67f2..69e62a7e89c 100644
--- a/TAO/CIAO/DAnCE/ciao/Container_Impl.h
+++ b/TAO/CIAO/DAnCE/ciao/Container_Impl.h
@@ -52,7 +52,8 @@ namespace CIAO
/// Constructor
Container_Impl (CORBA::ORB_ptr o,
PortableServer::POA_ptr p,
- ::Deployment::NodeApplication_ptr server);
+ ::Deployment::NodeApplication_ptr server,
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps =0);
/// Destructor
virtual ~Container_Impl (void);
@@ -207,6 +208,8 @@ protected:
ACE_Null_Mutex> CCMComponent_Map;
typedef CCMComponent_Map::iterator Component_Iterator;
CCMComponent_Map component_map_;
+
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps_;
};
}
diff --git a/TAO/CIAO/DAnCE/ciao/Container_Impl.inl b/TAO/CIAO/DAnCE/ciao/Container_Impl.inl
index 40406e5582e..b0ee9c6d558 100644
--- a/TAO/CIAO/DAnCE/ciao/Container_Impl.inl
+++ b/TAO/CIAO/DAnCE/ciao/Container_Impl.inl
@@ -4,10 +4,12 @@
ACE_INLINE
CIAO::Container_Impl::Container_Impl (CORBA::ORB_ptr o,
PortableServer::POA_ptr p,
- ::Deployment::NodeApplication_ptr server)
+ ::Deployment::NodeApplication_ptr server,
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps)
: orb_ (CORBA::ORB::_duplicate (o)),
poa_ (PortableServer::POA::_duplicate (p)),
- nodeapp_ (::Deployment::NodeApplication::_duplicate (server))
+ nodeapp_ (::Deployment::NodeApplication::_duplicate (server)),
+ static_entrypts_maps_ (static_entrypts_maps)
{
}
diff --git a/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.cpp b/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.cpp
index 63078657f51..276b5fe649e 100644
--- a/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.cpp
+++ b/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.cpp
@@ -302,7 +302,8 @@ CIAO::NodeApplication_Impl::create_container (const ::Deployment::Properties &pr
ACE_NEW_THROW_EX (container_servant,
CIAO::Container_Impl (this->orb_.in (),
this->poa_.in (),
- this->get_objref ()),
+ this->get_objref (),
+ this->static_entrypts_maps_),
CORBA::NO_MEMORY ());
ACE_CHECK_RETURN (0);
diff --git a/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.h b/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.h
index b2dccf413d6..53bdebcc485 100644
--- a/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.h
+++ b/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.h
@@ -63,7 +63,8 @@ namespace CIAO
public:
/// Default constructor.
NodeApplication_Impl (CORBA::ORB_ptr o,
- PortableServer::POA_ptr p);
+ PortableServer::POA_ptr p,
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps =0);
/// Default destructor.
virtual ~NodeApplication_Impl (void);
@@ -227,6 +228,8 @@ namespace CIAO
/// Cache the object reference (of ourselves).
::Deployment::NodeApplication_var objref_;
+
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps_;
};
}
diff --git a/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.inl b/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.inl
index d0a30e2b401..3d65a293a05 100644
--- a/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.inl
+++ b/TAO/CIAO/DAnCE/ciao/NodeApplication_Impl.inl
@@ -4,10 +4,11 @@
ACE_INLINE
CIAO::NodeApplication_Impl::
NodeApplication_Impl (CORBA::ORB_ptr o,
- PortableServer::POA_ptr p)
-
+ PortableServer::POA_ptr p,
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps)
: orb_ (CORBA::ORB::_duplicate (o)),
- poa_ (PortableServer::POA::_duplicate (p))
+ poa_ (PortableServer::POA::_duplicate (p)),
+ static_entrypts_maps_ (static_entrypts_maps)
{
}
diff --git a/TAO/CIAO/DAnCE/ciao/Version.h b/TAO/CIAO/DAnCE/ciao/Version.h
index e36f84e74ec..45b75180041 100644
--- a/TAO/CIAO/DAnCE/ciao/Version.h
+++ b/TAO/CIAO/DAnCE/ciao/Version.h
@@ -1,7 +1,9 @@
// $Id$
// This is an automatically generated file.
+
#define CIAO_MAJOR_VERSION 0
#define CIAO_MINOR_VERSION 4
#define CIAO_BETA_VERSION 1
#define CIAO_VERSION "0.4.1"
+