DAnCE  ..
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
DAnCE::DAnCE_LocalityActivator_i Class Reference

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

#include <LocalityActivator_Impl.h>

Inheritance diagram for DAnCE::DAnCE_LocalityActivator_i:
Inheritance graph
Collaboration diagram for DAnCE::DAnCE_LocalityActivator_i:
Collaboration graph

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. More...
 
virtual ~DAnCE_LocalityActivator_i (void)
 Destructor. More...
 
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. More...
 
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.nosp@m.@dre.nosp@m..vand.nosp@m.erbi.nosp@m.lt.ed.nosp@m.u 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

ACE_Condition<TAO_SYNCH_MUTEX> DAnCE::DAnCE_LocalityActivator_i::condition_
private
TAO_SYNCH_MUTEX DAnCE::DAnCE_LocalityActivator_i::container_mutex_
private
ACE_CString DAnCE::DAnCE_LocalityActivator_i::cs_args_
private
ACE_CString DAnCE::DAnCE_LocalityActivator_i::cs_path_
private
ACE_CString DAnCE::DAnCE_LocalityActivator_i::default_args_
private

Default args to pass to all componentservers.

bool DAnCE::DAnCE_LocalityActivator_i::multithreaded_
private
TAO_SYNCH_MUTEX DAnCE::DAnCE_LocalityActivator_i::mutex_
private
CORBA::ORB_var DAnCE::DAnCE_LocalityActivator_i::orb_
private
PortableServer::POA_var DAnCE::DAnCE_LocalityActivator_i::poa_
private
ACE_Process_Manager DAnCE::DAnCE_LocalityActivator_i::process_manager_
private
SERVER_INFOS DAnCE::DAnCE_LocalityActivator_i::server_infos_
private
CORBA::ULong DAnCE::DAnCE_LocalityActivator_i::spawn_delay_
private

The documentation for this class was generated from the following files: