DAnCE ..
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes
DAnCE::DAnCE_LocalityActivator_i Class Reference

Default server activator for CIAO component servers. More...

#include <LocalityActivator_Impl.h>

Collaboration diagram for DAnCE::DAnCE_LocalityActivator_i:
Collaboration graph
[legend]

List of all members.

Classes

struct  _server_info
class  Server_Child_Handler
 The exit handler class for the locality manager child process to detect and report process exit. More...
struct  Server_Info

Public Member Functions

 DAnCE_LocalityActivator_i (CORBA::ULong def_spawn_delay, const char *default_cs_path, const char *cs_args, bool multithreaded, CORBA::ORB_ptr orb, PortableServer::POA_ptr poa_)
 Constructor.
virtual ~DAnCE_LocalityActivator_i (void)
 Destructor.
virtual void locality_manager_callback (::DAnCE::LocalityManager_ptr serverref, const char *server_UUID,::Deployment::Properties_out config)
virtual void configuration_complete (const char *server_UUID)
::DAnCE::LocalityManager_ptr create_locality_manager (const ::Deployment::DeploymentPlan &plan, CORBA::ULong instanceRef, const ::Deployment::Properties &config)
void remove_locality_manager (::DAnCE::LocalityManager_ptr server)
::DAnCE::LocalityManagerget_locality_managers (void)

Private Types

typedef
ACE_Refcounted_Auto_Ptr
< Server_Info, ACE_Null_Mutex
Safe_Server_Info
typedef std::set
< Safe_Server_Info,
_server_info
SERVER_INFOS

Private Member Functions

ACE_CString construct_command_line (Server_Info &si)
pid_t spawn_locality_manager (Server_Child_Handler *exit_handler, const ACE_CString &cmd_line)
void single_threaded_wait_for_callback (const Server_Info &si, ACE_Time_Value &timeout)
void multi_threaded_wait_for_callback (Server_Info &si, ACE_Time_Value &timeout)
void create_properties (const Server_Info &info, Deployment::Properties_out config)

Private Attributes

ACE_CString default_args_
 Default args to pass to all componentservers.
TAO_SYNCH_MUTEX container_mutex_
SERVER_INFOS server_infos_
ACE_Process_Manager process_manager_
CORBA::ULong spawn_delay_
bool multithreaded_
CORBA::ORB_var orb_
PortableServer::POA_var poa_
ACE_CString cs_path_
ACE_CString cs_args_
TAO_SYNCH_MUTEX mutex_
ACE_Condition< TAO_SYNCH_MUTEXcondition_

Detailed Description

Default server activator for CIAO component servers.

Author:
William R. Otte <wotte@dre.vanderbilt.edu> Implements the default component server activation strategy which is to spawn new processes. This is not thread-safe, nor is it intended to be. Containers are reated serially, so there will be only one actor *modifying* data at a particular point in time.

Member Typedef Documentation


Constructor & Destructor Documentation

DAnCE::DAnCE_LocalityActivator_i::DAnCE_LocalityActivator_i ( CORBA::ULong  def_spawn_delay,
const char *  default_cs_path,
const char *  cs_args,
bool  multithreaded,
CORBA::ORB_ptr  orb,
PortableServer::POA_ptr  poa_ 
)

Constructor.

DAnCE::DAnCE_LocalityActivator_i::~DAnCE_LocalityActivator_i ( void  ) [virtual]

Destructor.


Member Function Documentation

void DAnCE::DAnCE_LocalityActivator_i::configuration_complete ( const char *  server_UUID) [virtual]
ACE_CString DAnCE::DAnCE_LocalityActivator_i::construct_command_line ( Server_Info si) [private]

Builds command line options based on configuration information. May modify the uuid of the component server.

DAnCE::LocalityManager_ptr DAnCE::DAnCE_LocalityActivator_i::create_locality_manager ( const ::Deployment::DeploymentPlan plan,
CORBA::ULong  instanceRef,
const ::Deployment::Properties config 
)
void DAnCE::DAnCE_LocalityActivator_i::create_properties ( const Server_Info info,
Deployment::Properties_out  config 
) [private]
::DAnCE::LocalityManager* DAnCE::DAnCE_LocalityActivator_i::get_locality_managers ( void  )
void DAnCE::DAnCE_LocalityActivator_i::locality_manager_callback ( ::DAnCE::LocalityManager_ptr  serverref,
const char *  server_UUID,
::Deployment::Properties_out  config 
) [virtual]
void DAnCE::DAnCE_LocalityActivator_i::multi_threaded_wait_for_callback ( Server_Info si,
ACE_Time_Value timeout 
) [private]

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 DAnCE::DAnCE_LocalityActivator_i::remove_locality_manager ( ::DAnCE::LocalityManager_ptr  server)
void DAnCE::DAnCE_LocalityActivator_i::single_threaded_wait_for_callback ( const Server_Info si,
ACE_Time_Value timeout 
) [private]

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

pid_t DAnCE::DAnCE_LocalityActivator_i::spawn_locality_manager ( Server_Child_Handler exit_handler,
const ACE_CString cmd_line 
) [private]

Spawns the component server process, but does not wait for it to call back.


Member Data Documentation

Default args to pass to all componentservers.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines