#include "tao/ORB_Core.h"
#include "tao/ORB_Core_TSS_Resources.h"
#include "tao/ORB_Table.h"
#include "tao/TAO_Internal.h"
#include "tao/default_server.h"
#include "tao/Profile.h"
#include "tao/Stub.h"
#include "tao/LF_Follower.h"
#include "tao/Leader_Follower.h"
#include "tao/LF_Event_Loop_Thread_Helper.h"
#include "tao/Connector_Registry.h"
#include "tao/Transport_Queueing_Strategies.h"
#include "tao/Object_Loader.h"
#include "tao/ObjectIdListC.h"
#include "tao/BiDir_Adapter.h"
#include "tao/Collocation_Resolver.h"
#include "tao/Flushing_Strategy.h"
#include "tao/Request_Dispatcher.h"
#include "tao/Stub_Factory.h"
#include "tao/Thread_Lane_Resources.h"
#include "tao/Thread_Lane_Resources_Manager.h"
#include "tao/TSS_Resources.h"
#include "tao/Protocols_Hooks.h"
#include "tao/Network_Priority_Protocols_Hooks.h"
#include "tao/IORInterceptor_Adapter.h"
#include "tao/IORInterceptor_Adapter_Factory.h"
#include "tao/debug.h"
#include "tao/TAOC.h"
#include "tao/Endpoint_Selector_Factory.h"
#include "tao/Client_Strategy_Factory.h"
#include "tao/Adapter_Factory.h"
#include "tao/Adapter.h"
#include "tao/GUIResource_Factory.h"
#include "tao/PolicyFactory_Registry_Adapter.h"
#include "tao/PolicyFactory_Registry_Factory.h"
#include "tao/ORBInitializer_Registry_Adapter.h"
#include "tao/Codeset_Manager.h"
#include "tao/GIOP_Fragmentation_Strategy.h"
#include "tao/SystemException.h"
#include "tao/Valuetype_Adapter.h"
#include "tao/Valuetype_Adapter_Factory.h"
#include "tao/Policy_Manager.h"
#include "tao/Policy_Current.h"
#include "ace/Reactor.h"
#include "ace/Dynamic_Service.h"
#include "ace/Arg_Shifter.h"
#include "ace/Argv_Type_Converter.h"
#include "ace/Static_Object_Lock.h"
#include "ace/Auto_Ptr.h"
#include "ace/CORBA_macros.h"
#include "ace/streams.h"
#include "ace/OS_NS_strings.h"
#include "ace/OS_NS_string.h"
#include "ace/Message_Block.h"
#include "tao/ClientRequestInterceptor_Adapter.h"
#include "tao/ClientRequestInterceptor_Adapter_Factory.h"
#include "tao/ServerRequestInterceptor_Adapter.h"
#include "tao/ServerRequestInterceptor_Adapter_Factory.h"
#include "tao/ORB_Core.inl"
Include dependency graph for ORB_Core.cpp:
Go to the source code of this file.
Defines | |
#define | TOCSRi TAO_ORB_Core_Static_Resources::instance () |
Functions | |
ACE_STATIC_SVC_DEFINE (TAO_ORB_Core_Static_Resources, ACE_TEXT("TAO_ORB_Core_Static_Resources"), ACE_SVC_OBJ_T,&ACE_SVC_NAME(TAO_ORB_Core_Static_Resources), ACE_Service_Type::DELETE_THIS|ACE_Service_Type::DELETE_OBJ, 0) TAO_BEGIN_VERSIONED_NAMESPACE_DECLCORBA | |
TAO_Export TAO_ORB_Core * | TAO_ORB_Core_instance (void) |
#define TOCSRi TAO_ORB_Core_Static_Resources::instance () |
Referenced by TAO_ORB_Core::connection_timeout_hook().
ACE_STATIC_SVC_DEFINE | ( | TAO_ORB_Core_Static_Resources | , | |
ACE_TEXT("TAO_ORB_Core_Static_Resources") | , | |||
ACE_SVC_OBJ_T | , | |||
& | ACE_SVC_NAME(TAO_ORB_Core_Static_Resources), | |||
ACE_Service_Type::DELETE_THIS|ACE_Service_Type::DELETE_OBJ | , | |||
0 | ||||
) |
Definition at line 85 of file ORB_Core.cpp.
References TAO_TSS_Resources::default_environment_, and TAO_TSS_Resources::instance().
00099 { 00100 return *TAO_TSS_Resources::instance ()->default_environment_; 00101 }
TAO_Export TAO_ORB_Core* TAO_ORB_Core_instance | ( | void | ) |
Obtain an instance of the first ORB core registered in the ORB table.
Definition at line 3384 of file ORB_Core.cpp.
References ACE_GUARD_RETURN, CORBA::ORB_init(), and TAO_SYNCH_RECURSIVE_MUTEX.
Referenced by TAO_Connector_Registry::create_profile(), CORBA::Environment::default_environment(), operator>>(), CORBA::Object::tao_object_initialize(), TAO_Stub::TAO_Stub(), and CORBA::Environment::~Environment().
03385 { 03386 // @@ This is a slight violation of layering, we should use 03387 // TAO_ORB_Core_instance(), but that breaks during startup. 03388 TAO::ORB_Table * const orb_table = TAO::ORB_Table::instance (); 03389 if (orb_table->first_orb () == 0) 03390 { 03391 ACE_MT (ACE_GUARD_RETURN (TAO_SYNCH_RECURSIVE_MUTEX, guard, 03392 *ACE_Static_Object_Lock::instance (), 0)); 03393 03394 if (orb_table->first_orb () == 0) 03395 { 03396 // Calling CORBA::ORB_init() returns a duplicated ORB 03397 // reference, so make sure that reference is stored in an 03398 // ORB_var so that no leak occurs. The duplicate ORB 03399 // reference isn't needed outside the scope of this function 03400 // since the corresponding ORB Core instance will still 03401 // exist in the ORB table after the ORB reference is 03402 // destroyed. 03403 03404 try 03405 { 03406 int argc = 0; 03407 CORBA::ORB_var orb = CORBA::ORB_init (argc, 0); 03408 } 03409 catch (const ::CORBA::Exception&) 03410 { 03411 // @@ What should we do here? 03412 } 03413 } 03414 } 03415 03416 return orb_table->first_orb (); 03417 }