TAO_POA_Static_Resources Class Reference

The static (global) resoures of all POA's. More...

#include <Root_POA.h>

Collaboration diagram for TAO_POA_Static_Resources:

Collaboration graph
[legend]
List of all members.

Static Public Member Functions

TAO_POA_Static_Resourcesinstance (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

TAO_POA_Static_Resourcesinstance_ = 0
 The singleton instance.

TAO_POA_Static_Resourcesinitialization_reference_

Detailed Description

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 999 of file Root_POA.h.


Constructor & Destructor Documentation

TAO_POA_Static_Resources::TAO_POA_Static_Resources void   )  [private]
 

Constructor.

Definition at line 2957 of file Root_POA.cpp.

02958   : ort_adapter_factory_name_ ("ORT_Adapter_Factory"),
02959     imr_client_adapter_name_ ("ImR_Client_Adapter")
02960 {
02961 }


Member Function Documentation

TAO_POA_Static_Resources * TAO_POA_Static_Resources::instance void   )  [static]
 

Return the singleton instance.

Definition at line 2940 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().

02941 {
02942   if (TAO_POA_Static_Resources::instance_ == 0)
02943     {
02944       // This new is never freed on purpose.  The data specified by
02945       // it needs to be around for the last shared library that references
02946       // this class.  This could occur in a destructor in a shared library
02947       // that is unloaded after this one.  One solution to avoid this
02948       // harmless memory leak would be to use reference counting.
02949       ACE_NEW_RETURN (TAO_POA_Static_Resources::instance_,
02950                       TAO_POA_Static_Resources (),
02951                       0);
02952     }
02953 
02954   return TAO_POA_Static_Resources::instance_;
02955 }


Member Data Documentation

ACE_CString TAO_POA_Static_Resources::imr_client_adapter_name_
 

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 1024 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 2936 of file Root_POA.cpp.

TAO_POA_Static_Resources * TAO_POA_Static_Resources::instance_ = 0 [static, private]
 

The singleton instance.

Definition at line 2931 of file Root_POA.cpp.

Referenced by instance().

ACE_CString TAO_POA_Static_Resources::ort_adapter_factory_name_
 

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 1016 of file Root_POA.h.

Referenced by TAO_Root_POA::ort_adapter_factory_name().


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 12:45:56 2006 for TAO_PortableServer by doxygen 1.3.6