NAME
ACE_Process_Strategy - Defines the interface for specifying a concurrency strategy for a SVC_HANDLER based on multiprocessing.
SYNOPSIS
#include <ace/ACE_Strategies_T.h>
template<class SVC_HANDLER>
class ACE_Process_Strategy :
public ACE_Concurrency_Strategy<SVC_HANDLER>
{
public:
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;
ACE_ALLOC_HOOK_DECLARE;
protected:
typedef ACE_Concurrency_Strategy<SVC_HANDLER> inherited;
size_t n_processes_;
ACE_Event_Handler *acceptor_;
ACE_Reactor *reactor_;
};
DESCRIPTION
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.
Intialization and termination 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.
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.
virtual ~ACE_Process_Strategy (void);
Factory method.
virtual int activate_svc_handler (
SVC_HANDLER *svc_handler,
void *arg = 0
);
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.
void dump (void) const;
Dump the state of an object.
ACE_ALLOC_HOOK_DECLARE;
Declare the dynamic allocation hooks.
AUTHOR
Doug Schmidt
LIBRARY
ace