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

# ACE_TSS_Singleton Class Template Reference

This class uses the Adapter pattern to turn ordinary classes into Thread-specific Singletons optimized with the Double-Checked Locking optimization pattern. More...

`#include <Singleton.h>`

Inheritance diagram for ACE_TSS_Singleton

[legend]
Collaboration diagram for ACE_TSS_Singleton:

[legend]
List of all members.

## Public Methods
virtual void | cleanup (void *param = 0)
| Cleanup method, used by to destroy the singleton.
## Static Public Methods
TYPE* | instance (void)
| Global access point to the Singleton.
void | dump (void)
| Dump the state of the object.
## Protected Methods
| ACE_TSS_Singleton (void)
| Default constructor.
| ACE_TSS_TYPE (TYPE) instance_
| Contained instance.
## Static Protected Methods
ACE_TSS_Singleton<TYPE, ACE_LOCK>*& | instance_i (void)
| Get pointer to the TSS Singleton instance.
## Static Protected Attributes
ACE_TSS_Singleton<TYPE, ACE_LOCK>* | singleton_ = 0
| Pointer to the Singleton (ACE_Cleanup) instance.

## Detailed Description

### template<class TYPE, class ACE_LOCK> template class ACE_TSS_Singleton

This class uses the Adapter pattern to turn ordinary classes into Thread-specific Singletons optimized with the Double-Checked Locking optimization pattern.

This implementation is another variation on the GoF Singleton pattern. In this case, a single > instance is allocated here, not a <TYPE> instance. Each call to the <instance> static method returns a Singleton whose pointer resides in thread-specific storage. As with , we use the so that the Singleton can be cleaned up when the process exits. For this scheme to work, a (static) <cleanup> function must be provided. provides one so that TYPE doesn't need to.

## Constructor & Destructor Documentation

template<classTYPE, classACE_LOCK>
ACE_INLINE ACE_TSS_Singleton< TYPE,ACE_LOCK >::ACE_TSS_Singleton<TYPE, ACE_LOCK> ( | void )`[protected]`

| Default constructor.

## Member Function Documentation

template<classTYPE, classACE_LOCK>
ACE_TSS_Singleton<TYPE, ACE_LOCK>::ACE_TSS_TYPE ( | TYPE )`[protected]`

| Contained instance.

template<classTYPE, classACE_LOCK>
void ACE_TSS_Singleton<TYPE, ACE_LOCK>::cleanup ( | void * param = 0 )`[virtual]`

| Cleanup method, used by to destroy the singleton. Reimplemented from ACE_Cleanup.

template<classTYPE, classACE_LOCK>
void ACE_TSS_Singleton<TYPE, ACE_LOCK>::dump ( | void )`[static]`

| Dump the state of the object. Reimplemented in ACE_Unmanaged_TSS_Singleton.

template<classTYPE, classACE_LOCK>
TYPE * ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance ( | void )`[static]`

| Global access point to the Singleton. Reimplemented in ACE_Unmanaged_TSS_Singleton.

template<classTYPE, classACE_LOCK>
ACE_TSS_Singleton< TYPE,ACE_LOCK >*& ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance_i ( | void )`[static, protected]`

| Get pointer to the TSS Singleton instance. Reimplemented in ACE_Unmanaged_TSS_Singleton.

## Member Data Documentation

template<classTYPE, classACE_LOCK>
ACE_TSS_Singleton< TYPE,ACE_LOCK >* ACE_TSS_Singleton<TYPE, ACE_LOCK>::singleton_ = 0`[static, protected]`

| Pointer to the Singleton (ACE_Cleanup) instance. Reimplemented in ACE_Unmanaged_TSS_Singleton.

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

- Singleton.h
- Singleton.cpp
- Singleton.i