Static Public Member Functions | Public Attributes | Private Member Functions | Static Private Attributes

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


Constructor & Destructor Documentation

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")
{
}


Member Function Documentation

void TAO_POA_Static_Resources::fini ( void   )  [static]

Cleanup the static singleton.

Definition at line 2676 of file Root_POA.cpp.

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_;
}


Member Data Documentation

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.

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

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.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines