NAME

ACE_Object_Manager_Base - Base class for ACE_Object_Manager(s).

SYNOPSIS

#include <ace/Object_Manager.h>

class ACE_Object_Manager_Base { public: static int get_singleton_lock (ACE_Null_Mutex *&); static int get_singleton_lock (ACE_Thread_Mutex *&); static int get_singleton_lock (ACE_Mutex *&); static int get_singleton_lock (ACE_Recursive_Thread_Mutex *&); static int get_singleton_lock (ACE_RW_Thread_Mutex *&); protected: ACE_Object_Manager_Base (void); virtual ~ACE_Object_Manager_Base (void); ACE_Unbounded_Queue<ACE_Cleanup_Info> *registered_objects_; ACE_Recursive_Thread_Mutex *internal_lock_; ACE_Cleanup_Adapter<ACE_Null_Mutex> *singleton_null_lock_; ACE_Array<ACE_Thread_Mutex *> *singleton_thread_locks_; ACE_Array<ACE_Mutex *> *singleton_mutex_locks_; ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex> *singleton_recursive_lock_; ACE_Array<ACE_RW_Thread_Mutex *> *singleton_rw_locks_; private: ACE_Object_Manager_Base (const ACE_Object_Manager_Base &); ACE_Object_Manager_Base &operator= ( const ACE_Object_Manager_Base & ); };

DESCRIPTION

Encapsulates the most useful ACE_Object_Manager data structures.

PUBLIC MEMBERS

static int get_singleton_lock (ACE_Null_Mutex *&);

static int get_singleton_lock (ACE_Thread_Mutex *&);

static int get_singleton_lock (ACE_Mutex *&);

static int get_singleton_lock (ACE_Recursive_Thread_Mutex *&);

static int get_singleton_lock (ACE_RW_Thread_Mutex *&);

PROTECTED MEMBERS

ACE_Object_Manager_Base (void);

virtual ~ACE_Object_Manager_Base (void);

ACE_Unbounded_Queue<ACE_Cleanup_Info> *registered_objects_;

ACE_Recursive_Thread_Mutex *internal_lock_;

ACE_Cleanup_Adapter<ACE_Null_Mutex> *singleton_null_lock_;

ACE_Array<ACE_Thread_Mutex *> *singleton_thread_locks_;

ACE_Array<ACE_Mutex *> *singleton_mutex_locks_;

    ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex> *singleton_recursive_lock_;
    

ACE_Array<ACE_RW_Thread_Mutex *> *singleton_rw_locks_;

PRIVATE MEMBERS

ACE_Object_Manager_Base (const ACE_Object_Manager_Base &);

ACE_Object_Manager_Base &operator= (const ACE_Object_Manager_Base &);

AUTHORS

David L. Levine, Matthias Kerkhoff, and Per Andersson

LIBRARY

ace