#include <TAO_Singleton_Manager.h>
Inheritance diagram for TAO_Singleton_Manager:
Public Types | |
enum | Preallocated_Object { TAO_EMPTY_PREALLOCATED_OBJECT, TAO_PREALLOCATED_OBJECTS } |
Unique identifiers for preallocated Objects. More... | |
Public Methods | |
virtual int | init (void) |
Explicitly initialize. | |
int | init (int register_with_object_manager) |
virtual int | fini (void) |
Explicitly destroy. | |
void | _set_unexpected (TAO_unexpected_handler u) |
Set a new unexpected exception handler. | |
Static Public Methods | |
int | starting_up (void) |
int | shutting_down (void) |
sigset_t * | default_mask (void) |
ACE_Thread_Hook * | thread_hook (void) |
Returns the current thread hook for the process. | |
ACE_Thread_Hook * | thread_hook (ACE_Thread_Hook *new_thread_hook) |
Returns the existing thread hook and assign a new_thread_hook. | |
TAO_Singleton_Manager * | instance (void) |
Accessor to singleton instance. | |
int | at_exit (ACE_Cleanup *object, void *param=0) |
int | at_exit (void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param) |
Private Methods | |
int | at_exit_i (void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param) |
TAO_Singleton_Manager (void) | |
~TAO_Singleton_Manager (void) | |
TAO_Singleton_Manager (const TAO_Singleton_Manager &) | |
TAO_Singleton_Manager & | operator= (const TAO_Singleton_Manager &) |
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_ |
TAO_unexpected_handler | old_unexpected_ |
The old unexpected exception handler. | |
Static Private Attributes | |
TAO_Singleton_Manager * | instance_ = 0 |
Singleton instance pointer. | |
void * | preallocated_object [TAO_PREALLOCATED_OBJECTS] = { 0 } |
Table of preallocated objects. | |
Friends | |
void | TAO_Singleton_Manager_cleanup_destroyer (void *, void *) |
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.
|
Unique identifiers for preallocated Objects.
|
|
|
|
|
|
|
|
Set a new unexpected exception handler. The old one will be stored for restoration later on.
|
|
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. |
|
The object is deleted via the ace_cleanup_destroyer. If you need more flexiblity, see the other at_exit method below. For OS's that do not have processes, cleanup takes place at the end of main. 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. |
|
Register an object or array for deletion at program termination. See description of static version above for return values. |
|
Accesses a default signal set used, for example, in ACE_Sig_Guard methods. |
|
Explicitly destroy.
Implements ACE_Object_Manager_Base. |
|
Explicitly initialize the TAO_Singleton_Manager, in addition to explicitly registering (or not registering) with the ACE_Object_Manager. |
|
Explicitly initialize.
Implements ACE_Object_Manager_Base. |
|
Accessor to singleton instance.
|
|
|
|
Returns 1 after the TAO_Singleton_Manager has been destroyed. See ACE_Object_Manager::shutting_down for more information. |
|
Returns 1 before the TAO_Singleton_Manager has been constructed. See ACE_Object_Manager::starting_up for more information. |
|
Returns the existing thread hook and assign a new_thread_hook.
|
|
Returns the current thread hook for the process.
|
|
Adapter for cleanup, used to register cleanup function with the ACE_Object_Manager. |
|
Default signal set used, for example, in ACE_Sig_Guard.
|
|
For at_exit support.
|
|
Singleton instance pointer.
|
|
The old unexpected exception handler. A pointer to the old unexpected exception handler is stored so that it can be restored when TAO is unloaded, for example. Otherwise, any unexpected exceptions will result in a call to TAO's unexpected exception handler which may no longer exist if TAO was unloaded. |
|
Table of preallocated objects.
|
|
Indicates if TAO_Singleton_Manager is registered with the ACE_Object_Manager. |
|
Thread hook that's used by this process.
|