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


Constructor & Destructor Documentation

TAO_POA_Static_Resources::TAO_POA_Static_Resources void   )  [private]
 

Constructor.

Definition at line 2662 of file Root_POA.cpp.

02663   : ort_adapter_factory_name_ ("ORT_Adapter_Factory"),
02664     imr_client_adapter_name_ ("ImR_Client_Adapter")
02665 {
02666 }


Member Function Documentation

TAO_POA_Static_Resources * TAO_POA_Static_Resources::instance void   )  [static]
 

Return the singleton instance.

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

02646 {
02647   if (TAO_POA_Static_Resources::instance_ == 0)
02648     {
02649       // This new is never freed on purpose.  The data specified by
02650       // it needs to be around for the last shared library that references
02651       // this class.  This could occur in a destructor in a shared library
02652       // that is unloaded after this one.  One solution to avoid this
02653       // harmless memory leak would be to use reference counting.
02654       ACE_NEW_RETURN (TAO_POA_Static_Resources::instance_,
02655                       TAO_POA_Static_Resources (),
02656                       0);
02657     }
02658 
02659   return TAO_POA_Static_Resources::instance_;
02660 }


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 827 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 2641 of file Root_POA.cpp.

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

The singleton instance.

Definition at line 2636 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 819 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 Sun Jan 27 13:27:36 2008 for TAO_PortableServer by doxygen 1.3.6