#include "tao/Resource_Factory.h"#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 "ace/Array_Map.h"#include "ace/Thread_Manager.h"#include "ace/Lock_Adapter_T.h"#include "ace/TSS_T.h"#include "ace/Service_Object.h"#include "tao/ORB_Core.i"Include dependency graph for ORB_Core.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Namespaces | |
| namespace | TAO |
| namespace | CORBA |
| namespace | IOP |
| namespace | PortableInterceptor |
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... | |
Functions | |
| TAO_Export TAO_ORB_Core * | TAO_ORB_Core_instance (void) |
Variables | |
| ACE_BEGIN_VERSIONED_NAMESPACE_DECL class | ACE_Data_Block |
DOC Laboratory - University of California at Irvine
Definition in file ORB_Core.h.
|
|
Obtain an instance of the first ORB core registered in the ORB table. Definition at line 3499 of file ORB_Core.cpp. References ACE_CATCHANY, ACE_DECLARE_NEW_CORBA_ENV, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_GUARD_RETURN, ACE_TRY, ACE_TRY_CHECK, TAO::ORB_Table::first_orb(), TAO::ORB_Table::instance(), CORBA::ORB_init(), CORBA::ORB_var, 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().
03500 {
03501 // @@ This is a slight violation of layering, we should use
03502 // TAO_ORB_Core_instance(), but that breaks during startup.
03503 TAO::ORB_Table * const orb_table = TAO::ORB_Table::instance ();
03504 if (orb_table->first_orb () == 0)
03505 {
03506 ACE_MT (ACE_GUARD_RETURN (TAO_SYNCH_RECURSIVE_MUTEX, guard,
03507 *ACE_Static_Object_Lock::instance (), 0));
03508
03509 if (orb_table->first_orb () == 0)
03510 {
03511 // Calling CORBA::ORB_init() returns a duplicated ORB
03512 // reference, so make sure that reference is stored in an
03513 // ORB_var so that no leak occurs. The duplicate ORB
03514 // reference isn't needed outside the scope of this function
03515 // since the corresponding ORB Core instance will still
03516 // exist in the ORB table after the ORB reference is
03517 // destroyed.
03518
03519 ACE_DECLARE_NEW_CORBA_ENV;
03520 ACE_TRY
03521 {
03522 int argc = 0;
03523 CORBA::ORB_var orb =
03524 CORBA::ORB_init (argc, 0, 0 ACE_ENV_ARG_PARAMETER);
03525 ACE_TRY_CHECK;
03526 }
03527 ACE_CATCHANY
03528 {
03529 // @@ What should we do here?
03530 }
03531 ACE_ENDTRY;
03532 }
03533 }
03534
03535 return orb_table->first_orb ();
03536 }
|
|
|
Definition at line 48 of file ORB_Core.h. Referenced by TAO_ORB_Core::create_data_block_i(). |
1.3.6