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_MUTEX > condition_

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

ACE_Condition<TAO_SYNCH_MUTEX> DAnCE::DAnCE_LocalityActivator_i::condition_ [private]

Default args to pass to all componentservers.

TAO_SYNCH_MUTEX DAnCE::DAnCE_LocalityActivator_i::mutex_ [private]

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