Public Member Functions |
virtual int | init (void) |
| Explicitly initialize.
|
int | init (int register_with_object_manager) |
virtual int | fini (void) |
| Explicitly destroy.
|
Static Public Member Functions |
static int | starting_up (void) |
static int | shutting_down (void) |
static sigset_t * | default_mask (void) |
static ACE_Thread_Hook * | thread_hook (void) |
| Returns the current thread hook for the process.
|
static ACE_Thread_Hook * | thread_hook (ACE_Thread_Hook *new_thread_hook) |
| Returns the existing thread hook and assign a new_thread_hook.
|
static TAO_Singleton_Manager * | instance (void) |
| Accessor to singleton instance.
|
static int | at_exit (ACE_Cleanup *object, void *param=0, const char *name=0) |
static int | at_exit (void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param, const char *name) |
Protected Member Functions |
|
| TAO_Singleton_Manager (void) |
| Force allocation on the heap.
|
| ~TAO_Singleton_Manager (void) |
| Force allocation on the heap.
|
Private Member Functions |
int | at_exit_i (void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param, const char *name) |
|
| TAO_Singleton_Manager (const TAO_Singleton_Manager &) |
| Disallow copying by not implementing the following ...
|
TAO_Singleton_Manager & | operator= (const TAO_Singleton_Manager &) |
| Disallow copying by not implementing the following ...
|
Private Attributes |
sigset_t * | default_mask_ |
| Default signal set used, for example, in ACE_Sig_Guard.
|
ACE_Thread_Hook * | thread_hook_ |
| Thread hook that's used by this process.
|
ACE_OS_Exit_Info | exit_info_ |
| For at_exit support.
|
int | registered_with_object_manager_ |
Manager for TAO library services and singleton cleanup.
The TAO_Singleton_Manager is basically simplified version of the ACE_Object_Manager. It is designed specifically to manage singletons created by TAO. For example, singleton instances created by TAO will be automatically registered with the singleton instance of this Singleton Manager.
- This class is necessary to ensure that TAO-specific singletons are isolated to TAO itself, not ACE, for example. The idea is that destruction of the instance of the TAO_Singleton_Manager triggers destruction of all objects/services registered with it.
Register an object (or array) for cleanup at process termination. cleanup_hook points to a (global, or static member) function that is called for the object or array when it to be destroyed. It may perform any necessary cleanup specific for that object or its class. param is passed as the second parameter to the cleanup_hook function; the first parameter is the object (or array) to be destroyed. cleanup_hook, for example, may delete the object (or array). For OS's that do not have processes, this function is the same as at_thread_exit
. Returns 0 on success. On failure, returns -1 and sets errno to: EAGAIN if shutting down, ENOMEM if insufficient virtual memory, or EEXIST if the object (or array) had already been registered.