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

static 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

static TAO_POA_Static_Resourcesinstance_ = 0
 The singleton instance.
static 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 804 of file Root_POA.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


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 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]

The singleton instance.

Definition at line 836 of file Root_POA.h.

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 821 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 Tue Feb 2 17:41:32 2010 for TAO_PortableServer by  doxygen 1.4.7