Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

# ACE_Creation_Strategy< SVC_HANDLER > Class Template Reference

Defines the interface for specifying a creation strategy for a SVC_HANDLER. More...

`#include <Strategies_T.h>`

Inheritance diagram for ACE_Creation_Strategy< SVC_HANDLER >:

[legend]
Collaboration diagram for ACE_Creation_Strategy< SVC_HANDLER >:

[legend]
List of all members.

## Public Types
typedef ACE_TYPENAME SVC_HANDLER::addr_type | addr_type
typedef SVC_HANDLER | handler_type
typedef ACE_TYPENAME SVC_HANDLER::stream_type | stream_type
## Public Member Functions
| ACE_Creation_Strategy (ACE_Thread_Manager *=0, ACE_Reactor *=ACE_Reactor::instance())
| Default constructor.
int | open (ACE_Thread_Manager *=0, ACE_Reactor *=ACE_Reactor::instance())
virtual | ~ACE_Creation_Strategy (void)
virtual int | make_svc_handler (SVC_HANDLER *&sh)
void | dump (void) const
| Dump the state of an object.
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## Protected Attributes
ACE_Thread_Manager * | thr_mgr_
| Pointer to a thread manager.
ACE_Reactor * | reactor_
| Pointer to an ACE_Reactor.

## Detailed Description

### template<class SVC_HANDLER>
class ACE_Creation_Strategy< SVC_HANDLER >

Defines the interface for specifying a creation strategy for a SVC_HANDLER.

The default behavior is to make a new SVC_HANDLER. However, subclasses can override this strategy to perform SVC_HANDLER creation in any way that they like (such as creating subclass instances of SVC_HANDLER, using a singleton, dynamically linking the handler, etc.).

## Member Typedef Documentation

template<class SVC_HANDLER>
typedef ACE_TYPENAME SVC_HANDLER::addr_type ACE_Creation_Strategy< SVC_HANDLER >::addr_type

template<class SVC_HANDLER>
typedef SVC_HANDLER ACE_Creation_Strategy< SVC_HANDLER >::handler_type

template<class SVC_HANDLER>
typedef ACE_TYPENAME SVC_HANDLER::stream_type ACE_Creation_Strategy< SVC_HANDLER >::stream_type

## Constructor & Destructor Documentation

template<class SVC_HANDLER>
ACE_INLINE ACE_Creation_Strategy< SVC_HANDLER >::ACE_Creation_Strategy | ( | ACE_Thread_Manager * | = `0`,
|  | ACE_Reactor * | = `ACE_Reactor::instance()`
| ) |

| Default constructor.

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

## Member Function Documentation

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

| Dump the state of an object. Reimplemented in ACE_Singleton_Strategy< SVC_HANDLER >, and ACE_DLL_Strategy< SVC_HANDLER >.

template<class SVC_HANDLER>
int ACE_Creation_Strategy< SVC_HANDLER >::make_svc_handler | ( | SVC_HANDLER *& | sh | ) | `[virtual]`

| Create a SVC_HANDLER with the appropriate creation strategy. The default behavior of this method is to make a new <svc_handler> if <sh> == 0 (passing in the <thread_manager>), else <sh> is unchanged. Returns -1 on failure, else 0. Reimplemented in ACE_Singleton_Strategy< SVC_HANDLER >, ACE_DLL_Strategy< SVC_HANDLER >, and ACE_NOOP_Creation_Strategy< SVC_HANDLER >.

template<class SVC_HANDLER>
ACE_INLINE int ACE_Creation_Strategy< SVC_HANDLER >::open | ( | ACE_Thread_Manager * | = `0`,
|  | ACE_Reactor * | = `ACE_Reactor::instance()`
| ) |

| An ACE_Thread_Manager is useful when creating active objects and the ACE_Reactor is used to initialize the service handler's reactor.

## Member Data Documentation

template<class SVC_HANDLER>
ACE_Creation_Strategy< SVC_HANDLER >::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented in ACE_Singleton_Strategy< SVC_HANDLER >, and ACE_DLL_Strategy< SVC_HANDLER >.

template<class SVC_HANDLER>
ACE_Reactor* ACE_Creation_Strategy< SVC_HANDLER >::reactor_`[protected]`

| Pointer to an ACE_Reactor.

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

| Pointer to a thread manager.

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

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