Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_Process_Strategy 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:

[legend]
Collaboration diagram for ACE_Process_Strategy:

[legend]
List of all members.

## Public Methods
| ACE_Process_Strategy (size_t n_processes=1, ACE_Event_Handler *acceptor=0, ACE_Reactor *=0, int avoid_zombies=0)
| Initialize the strategy. If <avoid_zombies> is non-0 then set a flag to <ACE::fork> to avoid zombies. More...
virtual int | open (size_t n_processes=1, ACE_Event_Handler *acceptor=0, ACE_Reactor *=0, int avoid_zombies=0)
| Initialize the strategy. If <avoid_zombies> is non-0 then set a flag to <ACE::fork> to avoid zombies. More...
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 Attributes
| 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_Handler * | acceptor_
ACE_Reactor * | reactor_

## 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. 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::inherited`[protected]`

## Constructor & Destructor Documentation

template<class SVC_HANDLER>
ASYS_INLINE 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
| ) |

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

template<class SVC_HANDLER>
ASYS_INLINE 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.

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

| Dump the state of an object. Reimplemented from ACE_Concurrency_Strategy.

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::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::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_Concurrency_Strategy.

template<class SVC_HANDLER>
size_t ACE_Process_Strategy::n_processes_`[protected]`

| Number of processes to spawn.

template<class SVC_HANDLER>
ACE_Reactor* ACE_Process_Strategy::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:

- Strategies_T.h
- Strategies_T.cpp
- Strategies_T.i