TAO_ORB_Core_Static_Resources Class Reference

The static (global) resoures of all ORB cores. More...

#include <ORB_Core.h>

Inheritance diagram for TAO_ORB_Core_Static_Resources:
Inheritance graph
[legend]
Collaboration diagram for TAO_ORB_Core_Static_Resources:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TAO_ORB_Core_Static_Resources (void)
 Constructor.
TAO_ORB_Core_Static_Resourcesoperator= (const TAO_ORB_Core_Static_Resources &)

Static Public Member Functions

static
TAO_ORB_Core_Static_Resources
instance (void)
 Return the context-specific singleton instance.

Public Attributes

ACE_CString network_priority_protocols_hooks_name_
TAO_ORB_Core::Timeout_Hook connection_timeout_hook_
 The hook to be set for the ConnectionTimeoutPolicy.
ACE_CString resource_factory_name_
ACE_CString dynamic_adapter_name_
ACE_CString ifr_client_adapter_name_
ACE_CString typecodefactory_adapter_name_
ACE_CString iorinterceptor_adapter_factory_name_
ACE_CString valuetype_adapter_factory_name_
TAO_ORB_Core::Timeout_Hook alt_connection_timeout_hook_
 An alternative hook to be set for the ConnectionTimeoutPolicy.

Static Private Attributes

static
TAO_ORB_Core_Static_Resources
initialization_reference_

Detailed Description

The static (global) resoures of all ORB cores.

This class is used by the ORB_Core to store the resources global to all ORB_Cores. All instance variables that would have been declared "static" in TAO_ORB_Core, 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_ORB_Core. Since the order in which these initializers execute is unspecified, uninitialized members can be accessed.

Definition at line 1268 of file ORB_Core.h.


Constructor & Destructor Documentation

TAO_ORB_Core_Static_Resources::TAO_ORB_Core_Static_Resources ( void   ) 

Constructor.

Definition at line 152 of file ORB_Core.cpp.

00153   : network_priority_protocols_hooks_name_ (
00154       "Network_Priority_Protocols_Hooks"),
00155     connection_timeout_hook_ (0),
00156     resource_factory_name_ ("Resource_Factory"),
00157     dynamic_adapter_name_ ("Dynamic_Adapter"),
00158     ifr_client_adapter_name_ ("IFR_Client_Adapter"),
00159     typecodefactory_adapter_name_ ("TypeCodeFactory_Adapter"),
00160     iorinterceptor_adapter_factory_name_ ("IORInterceptor_Adapter_Factory"),
00161     valuetype_adapter_factory_name_ ("Valuetype_Adapter_Factory"),
00162     alt_connection_timeout_hook_ (0)
00163 {
00164 }


Member Function Documentation

TAO_ORB_Core_Static_Resources * TAO_ORB_Core_Static_Resources::instance ( void   )  [static]

Return the context-specific singleton instance.

Definition at line 119 of file ORB_Core.cpp.

00120 {
00121   ACE_Service_Gestalt *current = ACE_Service_Config::current();
00122   TAO_ORB_Core_Static_Resources* tocsr =
00123     ACE_Dynamic_Service<TAO_ORB_Core_Static_Resources>::instance
00124     (current, "TAO_ORB_Core_Static_Resources", true);
00125 
00126   if (tocsr == 0)
00127     {
00128       // This new is never freed on purpose.  The data specified by
00129       // it needs to be around for the last shared library that references
00130       // this class.  This could occur in a destructor in a shared library
00131       // that is unloaded after this one.  One solution to avoid this
00132       // harmless memory leak would be to use reference counting.
00133       current->process_directive(ace_svc_desc_TAO_ORB_Core_Static_Resources);
00134       tocsr = ACE_Dynamic_Service<TAO_ORB_Core_Static_Resources>::instance
00135         (current, "TAO_ORB_Core_Static_Resources", true);
00136 
00137       ACE_Service_Gestalt *global = ACE_Service_Config::global();
00138       if (current != global)
00139         {
00140           TAO_ORB_Core_Static_Resources* global_tocsr =
00141             ACE_Dynamic_Service<TAO_ORB_Core_Static_Resources>::instance
00142             (global,"TAO_ORB_Core_Static_Resources");
00143 
00144           if (global_tocsr != 0)
00145             *tocsr = *global_tocsr;
00146         }
00147     }
00148 
00149   return tocsr;
00150 }

TAO_ORB_Core_Static_Resources & TAO_ORB_Core_Static_Resources::operator= ( const TAO_ORB_Core_Static_Resources other  ) 

Member Data Documentation

An alternative hook to be set for the ConnectionTimeoutPolicy.

Definition at line 1338 of file ORB_Core.h.

The hook to be set for the ConnectionTimeoutPolicy.

Definition at line 1282 of file ORB_Core.h.

Name of the service object for DII request creation that needs to be instantiated. The default value is "Dynamic_Adaper". If TAO_DynamicInterface is linked, dynamic_adapter_name() will be called to set the value to "Concrete_Dynamic_Adapter".

Definition at line 1298 of file ORB_Core.h.

Name of the service object for functions that make calls on the Interface Repository. The default value is "IFR_Client_Adaper". If TAO_IFR_CLient is linked, ifr_client_adapter_name() will be called to set the value to "Concrete_IFR_Client_Adapter".

Definition at line 1306 of file ORB_Core.h.

Initial value:

Mostly unused variable whose sole purpose is to enforce the instantiation of a TAO_ORB_Core_Static_Resources instance at initialization time.

Definition at line 1352 of file ORB_Core.h.

Name of the factory object used to adapt function calls on the PortableInterceptor interfaces IORInfo and IORInterceptor. The default value is "IORInterceptor_Adapter_Factory". If the IORInterceptor library is linked, the corresponding accessor function iorinterceptor_adapter_factory_name() will be called to set the value to "Concrete_IORInterceptor_Adapter_Factory".

Definition at line 1325 of file ORB_Core.h.

Name of the network_priority_protocols_hooks that needs to be instantiated.

Definition at line 1279 of file ORB_Core.h.

Name of the resource factory that needs to be instantiated. The default value is "Resource_Factory". If TAO_Strategies is linked, the set_resource_factory will be called to set the value to be "Advanced_Resource_Factory".

Definition at line 1290 of file ORB_Core.h.

Name of the service object used by the ORB create_*_tc functions. The default value is "TypeCodeFactory_Adapter". If the TypeCodeFactory library is linked, the corresponding accessor function typecodefactory_adapter_name() will be called to set the value to "Concrete_TypeCodeFactory_Adapter".

Definition at line 1315 of file ORB_Core.h.

Name of the factory object used to adapt function calls on the valuetype-related interfaces. The default value is "Valuetype_Adapter_Factory". If the Valuetype library is linked, the corresponding accessor function valuetype_adapter_factory_name() will be called to set the value to "Concrete_Valuetype_Adapter_Factory".

Definition at line 1335 of file ORB_Core.h.


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

Generated on Sun Nov 22 23:26:49 2009 for TAO by  doxygen 1.6.1