## NAME

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.

## SYNOPSIS

    #include <ace/Singleton.h>

    template<class TYPE, class ACE_LOCK>
    class ACE_TSS_Singleton : public ACE_Cleanup
    {
      public:
        static TYPE *instance (void);
        virtual void cleanup (void *param = 0);
        static void dump (void);
      protected:
        ACE_TSS_Singleton (void);
        ACE_TSS_TYPE (TYPE) instance_;
        static ACE_TSS_Singleton<TYPE, ACE_LOCK> *singleton_;
        static ACE_TSS_Singleton<TYPE, ACE_LOCK> *&instance_i (void);
    };

## DESCRIPTION

## PUBLIC MEMBERS

    static TYPE *instance (void);

Global access point to the Singleton.

    virtual void cleanup (void *param = 0);

Cleanup method, used by `ace_cleanup_destroyer` to destroy the singleton.

    static void dump (void);

Dump the state of the object.

## PROTECTED MEMBERS

    ACE_TSS_Singleton (void);

Default constructor.

    ACE_TSS_TYPE (TYPE) instance_;

Contained instance.

    static ACE_TSS_Singleton<TYPE, ACE_LOCK> *singleton_;

Pointer to the Singleton (ACE_Cleanup) instance.

    static ACE_TSS_Singleton<TYPE, ACE_LOCK> *&instance_i (void);

Get pointer to the TSS Singleton instance.

## AUTHOR

Tim Harrison (harrison@cs.wustl.edu), Douglas C. Schmidt, Chris Lahey, Rich Christy, and David Levine.

## LIBRARY

ace