ORB_Core.h File Reference

#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"
Include dependency graph for ORB_Core.h:

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

Detailed Description

Id
ORB_Core.h 86672 2009-09-09 12:42:07Z vzykov
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 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 }

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Sat Nov 7 23:27:28 2009 for TAO by  doxygen 1.6.1