The static (global) resoures of all POA's. More...
#include <Root_POA.h>
Static Public Member Functions | |
static TAO_POA_Static_Resources * | instance (void) |
Return the singleton instance. | |
static void | fini (void) ACE_GCC_DESTRUCTOR_ATTRIBUTE |
Cleanup the static singleton. | |
Public Attributes | |
ACE_CString | ort_adapter_factory_name_ |
ACE_CString | imr_client_adapter_name_ |
Private Member Functions | |
TAO_POA_Static_Resources (void) | |
Constructor. | |
Static Private Attributes | |
static TAO_POA_Static_Resources * | instance_ = 0 |
The singleton instance. | |
static TAO_POA_Static_Resources * | initialization_reference_ |
The static (global) resoures of all POA's.
This class is used by the POA to store the resources global to all POA's. All instance variables that would have been declared "static" in TAO_Regular_POA, should be declared in this class to avoid the "static initialization order fiasco" as described in http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.11. Briefly, this is the problem that occurs if any static initializers in any other code call into set static members of TAO_Regular_POA. Since the order in which these initializers execute is unspecified, uninitialized members can be accessed.
Definition at line 794 of file Root_POA.h.
TAO_POA_Static_Resources::TAO_POA_Static_Resources | ( | void | ) | [private] |
Constructor.
Definition at line 2700 of file Root_POA.cpp.
: ort_adapter_factory_name_ ("ORT_Adapter_Factory"), imr_client_adapter_name_ ("ImR_Client_Adapter") { }
void TAO_POA_Static_Resources::fini | ( | void | ) | [static] |
Cleanup the static singleton.
Definition at line 2676 of file Root_POA.cpp.
{ delete TAO_POA_Static_Resources::instance_; TAO_POA_Static_Resources::instance_ = 0; }
TAO_POA_Static_Resources * TAO_POA_Static_Resources::instance | ( | void | ) | [static] |
Return the singleton instance.
Definition at line 2683 of file Root_POA.cpp.
{ if (TAO_POA_Static_Resources::instance_ == 0) { // This new is never freed on purpose. The data specified by // it needs to be around for the last shared library that references // this class. This could occur in a destructor in a shared library // that is unloaded after this one. One solution to avoid this // harmless memory leak would be to use reference counting. ACE_NEW_RETURN (TAO_POA_Static_Resources::instance_, TAO_POA_Static_Resources (), 0); } return TAO_POA_Static_Resources::instance_; }
Name of the service object for functions that make calls on the Implementation Repository. The default value is "ImR_Client_Adapter". If TAO_IMR_CLient is linked, imr_client_adapter_name() will be called to set the value to "Concrete_ImR_Client_Adapter".
Definition at line 822 of file Root_POA.h.
TAO_POA_Static_Resources * TAO_POA_Static_Resources::initialization_reference_ [static, private] |
Mostly unused variable whose sole purpose is to enforce the instantiation of a TAO_POA_Static_Resources instance at initialization time.
Definition at line 834 of file Root_POA.h.
TAO_POA_Static_Resources * TAO_POA_Static_Resources::instance_ = 0 [static, private] |
The singleton instance.
Definition at line 829 of file Root_POA.h.
Name of the factory object used to adapt function calls on the PortableInterceptor interfaces ORT. The default value is "ObjectReferenceTemplate_Adapter_Factory". If the ORT library is linked, the corresponding accessor function objectreferencefactory_adapter_factory_name() will be called to set the value to "Concrete_ObjectReferenceTemplate_Adapter_Factory".
Definition at line 814 of file Root_POA.h.