ORB_Core.h File Reference

#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.inl"

Include dependency graph for ORB_Core.h:

Include dependency graph

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

Included by dependency graph

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_CoreTAO_ORB_Core_instance (void)

Variables

ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class 
ACE_Data_Block


Detailed Description

Id
ORB_Core.h 79366 2007-08-16 16:34:50Z mesnier_p

Author:
DOC Center - Washington University at St. Louis

DOC Laboratory - University of California at Irvine

Definition in file ORB_Core.h.


Function Documentation

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 3355 of file ORB_Core.cpp.

References ACE_GUARD_RETURN, 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().

03356 {
03357   // @@ This is a slight violation of layering, we should use
03358   //    TAO_ORB_Core_instance(), but that breaks during startup.
03359   TAO::ORB_Table * const orb_table = TAO::ORB_Table::instance ();
03360   if (orb_table->first_orb () == 0)
03361     {
03362       ACE_MT (ACE_GUARD_RETURN (TAO_SYNCH_RECURSIVE_MUTEX, guard,
03363                                 *ACE_Static_Object_Lock::instance (), 0));
03364 
03365       if (orb_table->first_orb () == 0)
03366         {
03367           // Calling CORBA::ORB_init() returns a duplicated ORB
03368           // reference, so make sure that reference is stored in an
03369           // ORB_var so that no leak occurs.  The duplicate ORB
03370           // reference isn't needed outside the scope of this function
03371           // since the corresponding ORB Core instance will still
03372           // exist in the ORB table after the ORB reference is
03373           // destroyed.
03374 
03375           try
03376             {
03377               int argc = 0;
03378               CORBA::ORB_var orb =
03379                 CORBA::ORB_init (argc, 0, 0);
03380             }
03381           catch (const ::CORBA::Exception&)
03382             {
03383               // @@ What should we do here?
03384             }
03385         }
03386     }
03387 
03388   return orb_table->first_orb ();
03389 }


Variable Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL class ACE_Data_Block
 

Definition at line 48 of file ORB_Core.h.

Referenced by TAO_ORB_Core::create_data_block_i().


Generated on Sun Jan 27 13:12:05 2008 for TAO by doxygen 1.3.6