#include <ORB_Core.h>
Inheritance diagram for TAO_ORB_Core_Static_Resources:
Public Member Functions | |
TAO_ORB_Core_Static_Resources (void) | |
Constructor. | |
TAO_ORB_Core_Static_Resources & | operator= (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_ |
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.
TAO_ORB_Core_Static_Resources::TAO_ORB_Core_Static_Resources | ( | void | ) |
Constructor.
Definition at line 149 of file ORB_Core.cpp.
00150 : network_priority_protocols_hooks_name_ ( 00151 "Network_Priority_Protocols_Hooks"), 00152 connection_timeout_hook_ (0), 00153 resource_factory_name_ ("Resource_Factory"), 00154 dynamic_adapter_name_ ("Dynamic_Adapter"), 00155 ifr_client_adapter_name_ ("IFR_Client_Adapter"), 00156 typecodefactory_adapter_name_ ("TypeCodeFactory_Adapter"), 00157 iorinterceptor_adapter_factory_name_ ("IORInterceptor_Adapter_Factory"), 00158 valuetype_adapter_factory_name_ ("Valuetype_Adapter_Factory"), 00159 alt_connection_timeout_hook_ (0) 00160 { 00161 }
TAO_ORB_Core_Static_Resources * TAO_ORB_Core_Static_Resources::instance | ( | void | ) | [static] |
Return the context-specific singleton instance.
Definition at line 118 of file ORB_Core.cpp.
References ACE_Service_Config::current(), ACE_Service_Config::global(), ACE_Dynamic_Service< TYPE >::instance(), and ACE_Service_Gestalt::process_directive().
Referenced by TAO_ORB_Core::connection_timeout(), TAO_ORB_Core::dynamic_adapter_name(), TAO_ORB_Core::ifr_client_adapter_name(), TAO_ORB_Core::init(), TAO_ORB_Core::iorinterceptor_adapter_factory_name(), TAO_ORB_Core::resource_factory(), TAO_ORB_Core::set_network_priority_protocols_hooks(), TAO_ORB_Core::set_resource_factory(), TAO_ORB_Core::typecodefactory_adapter_name(), and TAO_ORB_Core::valuetype_adapter_factory_name().
00119 { 00120 ACE_Service_Gestalt *current = ACE_Service_Config::current(); 00121 TAO_ORB_Core_Static_Resources* tocsr = 00122 ACE_Dynamic_Service<TAO_ORB_Core_Static_Resources>::instance 00123 (current, "TAO_ORB_Core_Static_Resources", true); 00124 00125 if (tocsr == 0) 00126 { 00127 // This new is never freed on purpose. The data specified by 00128 // it needs to be around for the last shared library that references 00129 // this class. This could occur in a destructor in a shared library 00130 // that is unloaded after this one. One solution to avoid this 00131 // harmless memory leak would be to use reference counting. 00132 current->process_directive(ace_svc_desc_TAO_ORB_Core_Static_Resources); 00133 tocsr = ACE_Dynamic_Service<TAO_ORB_Core_Static_Resources>::instance 00134 (current, "TAO_ORB_Core_Static_Resources", true); 00135 00136 ACE_Service_Gestalt *global = ACE_Service_Config::global(); 00137 if (current != global) 00138 { 00139 TAO_ORB_Core_Static_Resources* global_tocsr = 00140 ACE_Dynamic_Service<TAO_ORB_Core_Static_Resources>::instance 00141 (global,"TAO_ORB_Core_Static_Resources"); 00142 *tocsr = *global_tocsr; 00143 } 00144 } 00145 00146 return tocsr; 00147 }
TAO_ORB_Core_Static_Resources & TAO_ORB_Core_Static_Resources::operator= | ( | const TAO_ORB_Core_Static_Resources & | ) |
Definition at line 164 of file ORB_Core.cpp.
References alt_connection_timeout_hook_, connection_timeout_hook_, dynamic_adapter_name_, ifr_client_adapter_name_, iorinterceptor_adapter_factory_name_, network_priority_protocols_hooks_name_, resource_factory_name_, typecodefactory_adapter_name_, and valuetype_adapter_factory_name_.
00165 { 00166 this->network_priority_protocols_hooks_name_ = 00167 other.network_priority_protocols_hooks_name_; 00168 this->connection_timeout_hook_ = other.connection_timeout_hook_; 00169 this->resource_factory_name_ = other.resource_factory_name_; 00170 this->dynamic_adapter_name_ = other.dynamic_adapter_name_; 00171 this->ifr_client_adapter_name_ = other.ifr_client_adapter_name_; 00172 this->typecodefactory_adapter_name_ = other.typecodefactory_adapter_name_; 00173 this->iorinterceptor_adapter_factory_name_ = 00174 other.iorinterceptor_adapter_factory_name_; 00175 this->valuetype_adapter_factory_name_ = 00176 other.valuetype_adapter_factory_name_; 00177 this->alt_connection_timeout_hook_ = other.alt_connection_timeout_hook_; 00178 return *this; 00179 }
An alternative hook to be set for the ConnectionTimeoutPolicy.
Definition at line 1338 of file ORB_Core.h.
Referenced by TAO_ORB_Core::connection_timeout(), and operator=().
The hook to be set for the ConnectionTimeoutPolicy.
Definition at line 1282 of file ORB_Core.h.
Referenced by TAO_ORB_Core::connection_timeout(), and operator=().
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.
Referenced by TAO_ORB_Core::dynamic_adapter_name(), and operator=().
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.
Referenced by TAO_ORB_Core::ifr_client_adapter_name(), and operator=().
TAO_ORB_Core_Static_Resources * TAO_ORB_Core_Static_Resources::initialization_reference_ [static, private] |
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.
Referenced by TAO_ORB_Core::iorinterceptor_adapter_factory_name(), and operator=().
Name of the network_priority_protocols_hooks that needs to be instantiated.
Definition at line 1279 of file ORB_Core.h.
Referenced by operator=().
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.
Referenced by operator=(), TAO_ORB_Core::resource_factory(), and TAO_ORB_Core::set_resource_factory().
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.
Referenced by operator=(), and TAO_ORB_Core::typecodefactory_adapter_name().
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.
Referenced by operator=(), and TAO_ORB_Core::valuetype_adapter_factory_name().