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

TSS_Cleanup_Instance Class Reference

Collaboration diagram for TSS_Cleanup_Instance:

Collaboration graph
[legend]
List of all members.

Public Types

enum  Purpose { CREATE, USE, DESTROY }

Public Member Functions

 TSS_Cleanup_Instance (Purpose purpose=USE)
 ~TSS_Cleanup_Instance ()
bool valid ()
ACE_TSS_Cleanupoperator-> ()

Private Types

enum  { FLAG_DELETING = 1, FLAG_VALID_CHECKED = 2 }

Private Member Functions

ACE_TSS_Cleanupoperator * ()

Private Attributes

ACE_TSS_Cleanupptr_
unsigned short flags_

Static Private Attributes

unsigned int reference_count_ = 0
ACE_TSS_Cleanupinstance_ = 0
ACE_Thread_Mutexmutex_ = 0
ACE_Thread_Condition< ACE_Thread_Mutex > * condition_ = 0

Detailed Description

class to manage an instance pointer to ACE_TSS_Cleanup. Note: that the double checked locking pattern doesn't allow safe deletion. Callers who wish to access the singleton ACE_TSS_Cleanup must do so by instantiating a TSS_Cleanup_Instance, calling the valid method to be sure the ACE_TSS_Cleanup is available, then using the TSS_Cleanup_Instance as a pointer to the instance. Construction argument to the TSS_Cleanup_Instance determines how it is to be used: CREATE means allow this call to create an ACE_TSS_Cleanup if necessary. USE means use the existing ACE_TSS_Cleanup, but do not create a new one. DESTROY means provide exclusive access to the ACE_TSS_Cleanup, then delete it when the TSS_Cleanup_Instance goes out of scope.


Member Enumeration Documentation

anonymous enum [private]
 

Enumeration values:
FLAG_DELETING 
FLAG_VALID_CHECKED 

enum TSS_Cleanup_Instance::Purpose
 

Enumeration values:
CREATE 
USE 
DESTROY 


Constructor & Destructor Documentation

TSS_Cleanup_Instance::TSS_Cleanup_Instance Purpose  purpose = USE  ) 
 

TSS_Cleanup_Instance::~TSS_Cleanup_Instance  ) 
 


Member Function Documentation

ACE_TSS_Cleanup * TSS_Cleanup_Instance::operator *  )  [private]
 

ACE_TSS_Cleanup * TSS_Cleanup_Instance::operator->  ) 
 

bool TSS_Cleanup_Instance::valid  ) 
 


Member Data Documentation

ACE_Thread_Condition< ACE_Thread_Mutex > * TSS_Cleanup_Instance::condition_ = 0 [static, private]
 

unsigned short TSS_Cleanup_Instance::flags_ [private]
 

ACE_TSS_Cleanup * TSS_Cleanup_Instance::instance_ = 0 [static, private]
 

ACE_Thread_Mutex * TSS_Cleanup_Instance::mutex_ = 0 [static, private]
 

ACE_TSS_Cleanup* TSS_Cleanup_Instance::ptr_ [private]
 

unsigned int TSS_Cleanup_Instance::reference_count_ = 0 [static, private]
 


The documentation for this class was generated from the following file:
Generated on Wed Jun 8 23:57:01 2005 for ACE by  doxygen 1.3.9.1