#include <Root_POA.h>
Collaboration diagram for TAO_POA_Static_Resources:
Static Public Member Functions | |
static TAO_POA_Static_Resources * | instance (void) |
Return the singleton instance. | |
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_ |
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 804 of file Root_POA.h.
TAO_POA_Static_Resources::TAO_POA_Static_Resources | ( | void | ) | [private] |
Constructor.
Definition at line 2704 of file Root_POA.cpp.
02705 : ort_adapter_factory_name_ ("ORT_Adapter_Factory"), 02706 imr_client_adapter_name_ ("ImR_Client_Adapter") 02707 { 02708 }
TAO_POA_Static_Resources * TAO_POA_Static_Resources::instance | ( | void | ) | [static] |
Return the singleton instance.
Definition at line 2687 of file Root_POA.cpp.
References ACE_NEW_RETURN, and instance_.
Referenced by TAO_Root_POA::imr_client_adapter_name(), and TAO_Root_POA::ort_adapter_factory_name().
02688 { 02689 if (TAO_POA_Static_Resources::instance_ == 0) 02690 { 02691 // This new is never freed on purpose. The data specified by 02692 // it needs to be around for the last shared library that references 02693 // this class. This could occur in a destructor in a shared library 02694 // that is unloaded after this one. One solution to avoid this 02695 // harmless memory leak would be to use reference counting. 02696 ACE_NEW_RETURN (TAO_POA_Static_Resources::instance_, 02697 TAO_POA_Static_Resources (), 02698 0); 02699 } 02700 02701 return TAO_POA_Static_Resources::instance_; 02702 }
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 829 of file Root_POA.h.
Referenced by TAO_Root_POA::imr_client_adapter_name().
TAO_POA_Static_Resources * TAO_POA_Static_Resources::initialization_reference_ [static, private] |
Initial value:
Mostly unused variable whose sole purpose is to enforce the instantiation of a TAO_POA_Static_Resources instance at initialization time.Definition at line 841 of file Root_POA.h.
TAO_POA_Static_Resources * TAO_POA_Static_Resources::instance_ = 0 [static, private] |
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 821 of file Root_POA.h.
Referenced by TAO_Root_POA::ort_adapter_factory_name().