#include <NodeApplicationManager_Impl.h>
Public Member Functions | |
NodeApplicationManager_Impl (CORBA::ORB_ptr o, PortableServer::POA_ptr p, bool is_multi_threaded) | |
Constructor. | |
virtual PortableServer::ObjectId | init (const char *nodeapp_location, const char *nodeapp_options, const CORBA::ULong delay, const Deployment::DeploymentPlan &plan, const PortableServer::POA_ptr callback_poa, NodeManager_Impl_Base *nm) |
Protected Member Functions | |
virtual | ~NodeApplicationManager_Impl (void) |
Destructor. | |
virtual Deployment::NodeApplication_ptr | create_node_application (const ACE_CString &options) |
Internal help function to create new NodeApplicationProcess. | |
Deployment::NodeApplication_ptr | single_threaded_wait_for_callback (CIAO::NodeApplication_Callback_Impl *cb_servant, ACE_Time_Value &timeout) |
Deployment::NodeApplication_ptr | multi_threaded_wait_for_callback (CIAO::NodeApplication_Callback_Impl *cb_servant, ACE_Time_Value &timeout) |
void | push_component_info (pid_t process_id) |
pushes component info to the NodeManager | |
Protected Attributes | |
NAM_Handler | child_handler_ |
The signal handler. | |
Private Attributes | |
bool | is_multi_threaded_ |
CIAO::NodeApplicationManager_Impl::NodeApplicationManager_Impl | ( | CORBA::ORB_ptr | o, | |
PortableServer::POA_ptr | p, | |||
bool | is_multi_threaded | |||
) |
Constructor.
CIAO::NodeApplicationManager_Impl::~NodeApplicationManager_Impl | ( | void | ) | [protected, virtual] |
Destructor.
PortableServer::ObjectId CIAO::NodeApplicationManager_Impl::init | ( | const char * | nodeapp_location, | |
const char * | nodeapp_options, | |||
const CORBA::ULong | delay, | |||
const Deployment::DeploymentPlan & | plan, | |||
const PortableServer::POA_ptr | callback_poa, | |||
NodeManager_Impl_Base * | nm | |||
) | [virtual] |
A factory operation to create NodeApplicationManager interface, and return the object reference. Initialize the NodeApplicationManager. The current implementation of CIAO_NodeApplicationManager can only activate CIAO's own NodeApplication processes. You should specify the location (pathname) of the NodeApplication and the delay. CIAO_NodeApplicationManager should wait (in second) for NodeApplication to call back.
nodeapp_location | A null-termiated char * string pointing to the pathname of a NodeApplication executable. | |
nodeapp_options | A null-terminated char * string containing command line options to be passed to the NodeApplication. | |
delay | instructs how long (in second) a CIAO_NodeApplicationManager should wait for a newly spawned NodeApplication to pass back its IOR. | |
plan | has all the information needed for the NodeAppManager to construct the application locally. Note, this includes the properties of the NodeApplication. For example, ORB config options etc. | |
callback_poa | contains child poa created for the callback interface. |
Implements CIAO::NodeApplicationManager_Impl_Base.
Deployment::NodeApplication_ptr CIAO::NodeApplicationManager_Impl::create_node_application | ( | const ACE_CString & | options | ) | [protected, virtual] |
Internal help function to create new NodeApplicationProcess.
Implements CIAO::NodeApplicationManager_Impl_Base.
Deployment::NodeApplication_ptr CIAO::NodeApplicationManager_Impl::single_threaded_wait_for_callback | ( | CIAO::NodeApplication_Callback_Impl * | cb_servant, | |
ACE_Time_Value & | timeout | |||
) | [protected] |
This method is only applicable when our program is configured as singled threaded . Internally it uses a <perform_work> blocking call to wait for NA object to call back
Deployment::NodeApplication_ptr CIAO::NodeApplicationManager_Impl::multi_threaded_wait_for_callback | ( | CIAO::NodeApplication_Callback_Impl * | cb_servant, | |
ACE_Time_Value & | timeout | |||
) | [protected] |
This method is only applicable when our program is configured as multiple threaded. Internally it waits on a conditional variable that could be modified by the callback servant which runs in another thread
void CIAO::NodeApplicationManager_Impl::push_component_info | ( | pid_t | process_id | ) | [protected] |
pushes component info to the NodeManager
push_component_info
process_id | The id of the process of NodeApplication |
The signal handler.
bool CIAO::NodeApplicationManager_Impl::is_multi_threaded_ [private] |
Whether we run ourselves in multi threaded configuration or not By default, we run in single threaded configuration.