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>


| Public Member Functions | |
| virtual void | cleanup (void *param=0) | 
| Static Public Member Functions | |
| static TYPE * | instance (void) | 
| Global access point to the singleton. | |
| static void | dump (void) | 
| Dump the state of the object. | |
| Protected Member Functions | |
| ACE_TSS_Singleton (void) | |
| Default constructor. | |
| ACE_TSS_TYPE (TYPE) instance_ | |
| Contained instance. | |
| void | operator= (const ACE_TSS_Singleton< TYPE, ACE_LOCK > &) | 
| ACE_TSS_Singleton (const ACE_TSS_Singleton< TYPE, ACE_LOCK > &) | |
| Static Protected Member Functions | |
| static ACE_TSS_Singleton< TYPE, ACE_LOCK > *& | instance_i (void) | 
| Get pointer to the TSS Singleton instance. | |
| Static Protected Attributes | |
| static ACE_TSS_Singleton< TYPE, ACE_LOCK > * | singleton_ = 0 | 
| Pointer to the Singleton (ACE_Cleanup) instance. | |
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 <ACE_TSS_Singleton<TYPE, LOCK> > 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 ACE_Singleton, we use the ACE_Object_Manager so that the Singleton can be cleaned up when the process exits. For this scheme to work, a (static) cleanup() function must be provided. ACE_Singleton provides one so that TYPE doesn't need to.
| ACE_TSS_Singleton< TYPE, ACE_LOCK >::ACE_TSS_Singleton | ( | void | ) |  [protected] | 
Default constructor.
| ACE_TSS_Singleton< TYPE, ACE_LOCK >::ACE_TSS_Singleton | ( | const ACE_TSS_Singleton< TYPE, ACE_LOCK > & | ) |  [protected] | 
| ACE_TSS_Singleton< TYPE, ACE_LOCK >::ACE_TSS_TYPE | ( | TYPE | ) |  [protected] | 
Contained instance.
| void ACE_TSS_Singleton< TYPE, ACE_LOCK >::cleanup | ( | void * | param = 0) |  [virtual] | 
Cleanup method, used by <ace_cleanup_destroyer> to destroy the singleton.
Reimplemented from ACE_Cleanup.
| void ACE_TSS_Singleton< TYPE, ACE_LOCK >::dump | ( | void | ) |  [static] | 
Dump the state of the object.
Reimplemented in ACE_Unmanaged_TSS_Singleton< TYPE, ACE_LOCK >.
| TYPE * ACE_TSS_Singleton< TYPE, ACE_LOCK >::instance | ( | void | ) |  [static] | 
Global access point to the singleton.
Reimplemented in ACE_Unmanaged_TSS_Singleton< TYPE, ACE_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< TYPE, ACE_LOCK >.
| void ACE_TSS_Singleton< TYPE, ACE_LOCK >::operator= | ( | const ACE_TSS_Singleton< TYPE, ACE_LOCK > & | ) |  [protected] | 
| 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< TYPE, ACE_LOCK >.
 1.7.2
 1.7.2