# ACE_Thread_Strategy< SVC_HANDLER > Class Template Reference

Defines the interface for specifying a concurrency strategy for a <svc_handler> based on multithreading. More...

`#include <Strategies_T.h>`

Inheritance diagram for ACE_Thread_Strategy< SVC_HANDLER >:

[legend]
Collaboration diagram for ACE_Thread_Strategy< SVC_HANDLER >:

[legend]
List of all members.

## Public Types

typedef ACE_Concurrency_Strategy< SVC_HANDLER > | base_type

## Public Member Functions

| ACE_Thread_Strategy (int flags=0)
| "Do-nothing constructor"
| ACE_Thread_Strategy (ACE_Thread_Manager *tm, long thr_flags, int n_threads=1, int flags=0)
| Initialize the strategy.
virtual int | open (ACE_Thread_Manager *tm, long thr_flags, int n_threads=1, int flags=0)
| Initialize the strategy.
virtual | ~ACE_Thread_Strategy (void)
virtual int | activate_svc_handler (SVC_HANDLER *svc_handler, void *arg=0)
void | dump (void) const
| Dump the state of an object.

## Public Attributes

| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.

## Protected Types

typedef ACE_Concurrency_Strategy< SVC_HANDLER > | inherited

## Protected Attributes

ACE_Thread_Manager * | thr_mgr_
| Thread manager for this class (must be provided).
long | thr_flags_
| Flags to pass into the <SVC_HANDLER::activate> method.
int | n_threads_
| Number of threads to spawn.

## Detailed Description

### template<class SVC_HANDLER>
class ACE_Thread_Strategy< SVC_HANDLER >

Defines the interface for specifying a concurrency strategy for a <svc_handler> based on multithreading.

This class provides a strategy that manages the creation of threads to handle requests from clients concurrently via a thread-per-connection model. It behaves as a "thread factory", spawning threads "on-demand" to run the service specified by a user-supplied <svc_handler>.

## Member Typedef Documentation

template<class SVC_HANDLER>
typedef ACE_Concurrency_Strategy<SVC_HANDLER> ACE_Thread_Strategy< SVC_HANDLER >::base_type

template<class SVC_HANDLER>
typedef ACE_Concurrency_Strategy<SVC_HANDLER> ACE_Thread_Strategy< SVC_HANDLER >::inherited`[protected]`

## Constructor & Destructor Documentation

template<class SVC_HANDLER>
ACE_INLINE ACE_Thread_Strategy< SVC_HANDLER >::ACE_Thread_Strategy | ( | int | flags = `0` | ) |

| "Do-nothing constructor"

template<class SVC_HANDLER>
ACE_INLINE ACE_Thread_Strategy< SVC_HANDLER >::ACE_Thread_Strategy | ( | ACE_Thread_Manager * | tm,
|  | long | thr_flags,
|  | int | n_threads = `1`,
|  | int | flags = `0`
| ) |

| Initialize the strategy.

template<class SVC_HANDLER>
ACE_Thread_Strategy< SVC_HANDLER >::~ACE_Thread_Strategy | ( | void |  | ) | `[virtual]`

## Member Function Documentation

template<class SVC_HANDLER>
int ACE_Thread_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 calling its <open> method and then calling its <activate> method to turn it into an active object. Reimplemented from ACE_Concurrency_Strategy< SVC_HANDLER >.

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

| Dump the state of an object. Reimplemented from ACE_Concurrency_Strategy< SVC_HANDLER >.

template<class SVC_HANDLER>
int ACE_Thread_Strategy< SVC_HANDLER >::open | ( | ACE_Thread_Manager * | tm,
|  | long | thr_flags,
|  | int | n_threads = `1`,
|  | int | flags = `0`
| ) | `[virtual]`

| Initialize the strategy.

## Member Data Documentation

template<class SVC_HANDLER>
ACE_Thread_Strategy< SVC_HANDLER >::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_Concurrency_Strategy< SVC_HANDLER >.

template<class SVC_HANDLER>
int ACE_Thread_Strategy< SVC_HANDLER >::n_threads_`[protected]`

| Number of threads to spawn.

template<class SVC_HANDLER>
long ACE_Thread_Strategy< SVC_HANDLER >::thr_flags_`[protected]`

| Flags to pass into the <SVC_HANDLER::activate> method.

template<class SVC_HANDLER>
ACE_Thread_Manager* ACE_Thread_Strategy< SVC_HANDLER >::thr_mgr_`[protected]`

| Thread manager for this class (must be provided).

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

- Strategies_T.h
- Strategies_T.cpp
- Strategies_T.inl