ORB_Core.cpp File Reference

#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/ZIOP_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 "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"

Go to the source code of this file.

Defines

#define TOCSRi   TAO_ORB_Core_Static_Resources::instance ()

Functions

 ACE_RCSID (tao, ORB_Core,"$Id: ORB_Core.cpp 86811 2009-09-28 06:32:45Z johnnyw $") ACE_STATIC_SVC_DEFINE(TAO_ORB_Core_Static_Resources
 ACE_TEXT ("TAO_ORB_Core_Static_Resources")
ACE_SVC_NAME (TAO_ORB_Core_Static_Resources)
&ACE_Service_Type::DELETE_THIS
CORBA::Environment
TAO_default_environment (void)
TAO_Export TAO_ORB_CoreTAO_ORB_Core_instance (void)

Variables

 ACE_SVC_OBJ_T

Define Documentation

#define TOCSRi   TAO_ORB_Core_Static_Resources::instance ()

Function Documentation

ACE_RCSID ( tao  ,
ORB_Core  ,
"$Id: ORB_Core.cpp 86811 2009-09-28 06:32:45Z johnnyw $"   
)
& ACE_SVC_NAME ( TAO_ORB_Core_Static_Resources   ) 
Type Constraints
ACE_TEXT ( "TAO_ORB_Core_Static_Resources"   ) 
& ACE_Service_Type::DELETE_THIS CORBA::Environment& TAO_default_environment ( void   ) 

Provide a simple function to access the TSS default environment. This will be used in TAO wherever we have a default environment.

Note:
We tried with CORBA::default_environment() and others.
Type Constraints

Definition at line 99 of file ORB_Core.cpp.

00100 {
00101   return *TAO_TSS_Resources::instance ()->default_environment_;
00102 }

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 }


Variable Documentation

Definition at line 90 of file ORB_Core.cpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Sat Nov 21 23:27:17 2009 for TAO by  doxygen 1.6.1