#include <Singleton.h>
Inheritance diagram for ACE_TSS_Singleton:
Public Methods | |
virtual void | cleanup (void *param=0) |
Cleanup method, used by <ace_cleanup_destroyer> to destroy the singleton. More... | |
Static Public Methods | |
TYPE * | instance (void) |
Global access point to the Singleton. More... | |
void | dump (void) |
Dump the state of the object. More... | |
Protected Methods | |
ACE_TSS_Singleton (void) | |
Default constructor. More... | |
ACE_TSS_TYPE (TYPE) instance_ | |
Contained instance. More... | |
void | operator= (const ACE_TSS_Singleton< TYPE, ACE_LOCK > &) |
ACE_TSS_Singleton (const ACE_TSS_Singleton< TYPE, ACE_LOCK > &) | |
Static Protected Methods | |
ACE_TSS_Singleton< TYPE, ACE_LOCK > *& | instance_i (void) |
Get pointer to the TSS Singleton instance. More... | |
Static Protected Attributes | |
ACE_TSS_Singleton< TYPE, ACE_LOCK > * | singleton_ = 0 |
Pointer to the Singleton (ACE_Cleanup) instance. More... |
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.
|
Default constructor.
|
|
|
|
Contained instance.
|
|
Cleanup method, used by <ace_cleanup_destroyer> to destroy the singleton.
Reimplemented from ACE_Cleanup. |
|
Dump the state of the object.
Reimplemented in ACE_Unmanaged_TSS_Singleton. |
|
Global access point to the Singleton.
Reimplemented in ACE_Unmanaged_TSS_Singleton. |
|
Get pointer to the TSS Singleton instance.
Reimplemented in ACE_Unmanaged_TSS_Singleton. |
|
|
|
Pointer to the Singleton (ACE_Cleanup) instance.
Reimplemented in ACE_Unmanaged_TSS_Singleton. |