#include "tao/Collocation_Strategy.h"#include "tao/params.h"#include "tao/ORB_Constants.h"#include "tao/Parser_Registry.h"#include "tao/Service_Callbacks.h"#include "tao/Fault_Tolerance_Service.h"#include "tao/Cleanup_Func_Registry.h"#include "tao/Object_Ref_Table.h"#include "tao/ObjectKey_Table.h"#include "tao/Messaging_SyncScopeC.h"#include "tao/Object.h"#include "tao/Invocation_Utils.h"#include "tao/Adapter_Registry.h"#include "tao/ORB_Core_TSS_Resources.h"#include "tao/Service_Context_Handler_Registry.h"#include "ace/Array_Map.h"#include "ace/Thread_Manager.h"#include "ace/Lock_Adapter_T.h"#include "ace/TSS_T.h"#include "ace/Service_Config.h"#include "tao/ORB_Core.inl"
Go to the source code of this file.
Classes | |
| class | TAO_ORB_Core |
| Encapsulates the state of an ORB. More... | |
| class | TAO_ORB_Core_Static_Resources |
| The static (global) resoures of all ORB cores. More... | |
Namespaces | |
| namespace | TAO |
Define symbolic names for the ORB collocation strategies. | |
| namespace | CORBA |
FUZZ: disable check_for_include/. | |
| namespace | IOP |
| namespace | PortableInterceptor |
Functions | |
| TAO_Export TAO_ORB_Core * | TAO_ORB_Core_instance (void) |
Definition in file ORB_Core.h.
| 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 3462 of file ORB_Core.cpp.
03463 { 03464 // @@ This is a slight violation of layering, we should use 03465 // TAO_ORB_Core_instance(), but that breaks during startup. 03466 TAO::ORB_Table * const orb_table = TAO::ORB_Table::instance (); 03467 if (orb_table->first_orb () == 0) 03468 { 03469 ACE_MT (ACE_GUARD_RETURN (TAO_SYNCH_RECURSIVE_MUTEX, guard, 03470 *ACE_Static_Object_Lock::instance (), 0)); 03471 03472 if (orb_table->first_orb () == 0) 03473 { 03474 // Calling CORBA::ORB_init() returns a duplicated ORB 03475 // reference, so make sure that reference is stored in an 03476 // ORB_var so that no leak occurs. The duplicate ORB 03477 // reference isn't needed outside the scope of this function 03478 // since the corresponding ORB Core instance will still 03479 // exist in the ORB table after the ORB reference is 03480 // destroyed. 03481 03482 try 03483 { 03484 int argc = 0; 03485 ACE_TCHAR **const argv= 0; 03486 CORBA::ORB_var orb = 03487 CORBA::ORB_init (argc, argv); 03488 } 03489 catch (const ::CORBA::Exception&) 03490 { 03491 // @@ What should we do here? 03492 } 03493 } 03494 } 03495 03496 return orb_table->first_orb (); 03497 }
1.6.1