ACE  6.4.2
Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Attributes | List of all members
ACE_Process_Strategy< SVC_HANDLER > Class Template Reference

Defines the interface for specifying a concurrency strategy for a SVC_HANDLER based on multiprocessing. More...

#include <Strategies_T.h>

Inheritance diagram for ACE_Process_Strategy< SVC_HANDLER >:
Inheritance graph
[legend]
Collaboration diagram for ACE_Process_Strategy< SVC_HANDLER >:
Collaboration graph
[legend]

Public Types

typedef ACE_Concurrency_Strategy< SVC_HANDLER > base_type
 
- Public Types inherited from ACE_Concurrency_Strategy< SVC_HANDLER >
typedef SVC_HANDLER::addr_type addr_type
 
typedef SVC_HANDLER handler_type
 
typedef SVC_HANDLER::stream_type stream_type
 

Public Member Functions

 ACE_Process_Strategy (size_t n_processes=1, ACE_Event_Handler *acceptor=0, ACE_Reactor *=0, int avoid_zombies=0)
 
virtual int open (size_t n_processes=1, ACE_Event_Handler *acceptor=0, ACE_Reactor *=0, int avoid_zombies=0)
 
virtual ~ACE_Process_Strategy (void)
 
virtual int activate_svc_handler (SVC_HANDLER *svc_handler, void *arg=0)
 
void dump (void) const
 Dump the state of an object. More...
 
- Public Member Functions inherited from ACE_Concurrency_Strategy< SVC_HANDLER >
 ACE_Concurrency_Strategy (int flags=0)
 Constructor. More...
 
virtual ~ACE_Concurrency_Strategy (void)
 
void dump (void) const
 Dump the state of an object. More...
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 
- Public Attributes inherited from ACE_Concurrency_Strategy< SVC_HANDLER >
 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 

Protected Types

typedef ACE_Concurrency_Strategy< SVC_HANDLER > inherited
 

Protected Attributes

size_t n_processes_
 Number of processes to spawn. More...
 
ACE_Event_Handleracceptor_
 
ACE_Reactorreactor_
 
- Protected Attributes inherited from ACE_Concurrency_Strategy< SVC_HANDLER >
int flags_
 

Detailed Description

template<class SVC_HANDLER>
class ACE_Process_Strategy< SVC_HANDLER >

Defines the interface for specifying a concurrency strategy for a SVC_HANDLER based on multiprocessing.

This class provides a strategy that manages the creation of processes to handle requests from clients concurrently using a process-per-connection model. It behaves as a "process factory", using ACE::fork() to fork threads "on-demand" to run the service specified by a user-supplied SVC_HANDLER in a separate process.

Member Typedef Documentation

template<class SVC_HANDLER >
typedef ACE_Concurrency_Strategy<SVC_HANDLER> ACE_Process_Strategy< SVC_HANDLER >::base_type
template<class SVC_HANDLER >
typedef ACE_Concurrency_Strategy<SVC_HANDLER> ACE_Process_Strategy< SVC_HANDLER >::inherited
protected

Constructor & Destructor Documentation

template<class SVC_HANDLER >
ACE_Process_Strategy< SVC_HANDLER >::ACE_Process_Strategy ( size_t  n_processes = 1,
ACE_Event_Handler acceptor = 0,
ACE_Reactor reactor = 0,
int  avoid_zombies = 0 
)
inline

Initialize the strategy. If avoid_zombies is non-0 then set a flag to ACE::fork() to avoid zombies.

template<class SVC_HANDLER >
ACE_Process_Strategy< SVC_HANDLER >::~ACE_Process_Strategy ( void  )
virtual

Member Function Documentation

template<class SVC_HANDLER >
int ACE_Process_Strategy< SVC_HANDLER >::activate_svc_handler ( SVC_HANDLER *  svc_handler,
void *  arg = 0 
)
virtual

Activate the svc_handler with an appropriate concurrency strategy. This method activates the SVC_HANDLER by first forking and then calling the open() method of the SVC_HANDLER in the child.

Reimplemented from ACE_Concurrency_Strategy< SVC_HANDLER >.

template<class SVC_HANDLER >
void ACE_Process_Strategy< SVC_HANDLER >::dump ( void  ) const

Dump the state of an object.

template<class SVC_HANDLER >
int ACE_Process_Strategy< SVC_HANDLER >::open ( size_t  n_processes = 1,
ACE_Event_Handler acceptor = 0,
ACE_Reactor reactor = 0,
int  avoid_zombies = 0 
)
virtual

Initialize the strategy. If avoid_zombies is non-0 then set a flag to ACE::fork() to avoid zombies.

Member Data Documentation

template<class SVC_HANDLER >
ACE_Event_Handler* ACE_Process_Strategy< SVC_HANDLER >::acceptor_
protected

This is the Acceptor in the parent is listening on. We need to make sure that we remove it from the Reactor and close it down in the child.

template<class SVC_HANDLER >
ACE_Process_Strategy< SVC_HANDLER >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

template<class SVC_HANDLER >
size_t ACE_Process_Strategy< SVC_HANDLER >::n_processes_
protected

Number of processes to spawn.

template<class SVC_HANDLER >
ACE_Reactor* ACE_Process_Strategy< SVC_HANDLER >::reactor_
protected

This is the reactor the child is using in conjunction with the acceptor. We need to remove the acceptor from this reactor in the child.


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