00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file TAO_Internal.h 00006 * 00007 * $Id: TAO_Internal.h 81360 2008-04-14 20:15:12Z iliyan $ 00008 * 00009 * Structures and methods completely internal to TAO. 00010 * 00011 * @author Chris Cleeland 00012 */ 00013 //============================================================================= 00014 00015 #ifndef TAO_INTERNAL_H 00016 #define TAO_INTERNAL_H 00017 00018 #include /**/ "ace/pre.h" 00019 00020 #include "tao/orbconf.h" 00021 #include /**/ "tao/Versioned_Namespace.h" 00022 00023 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00024 # pragma once 00025 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00026 00027 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00028 /// Forward declaration 00029 class ACE_Service_Gestalt; 00030 template <class X> class ACE_Intrusive_Auto_Ptr; 00031 ACE_END_VERSIONED_NAMESPACE_DECL 00032 00033 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00034 00035 namespace TAO 00036 { 00037 /** 00038 * @namespace ORB 00039 * 00040 * @brief This @c namespace encapsulates some private behaviors and 00041 * global data structures used internal to TAO. No 00042 * application should EVER see them which is why they are not 00043 * exported. 00044 */ 00045 namespace ORB 00046 { 00047 00048 /** 00049 * If never done it before, extract ACE Service Configurator arguments from the given 00050 * argument vector, and initialize the _global_ configuration gestalt. Return value 0 means OK, 00051 * -1 spells major trouble ... 00052 */ 00053 int open_global_services (int argc, ACE_TCHAR** argv); 00054 00055 /** 00056 * Extract ACE Service Configurator arguments from the given 00057 * argument vector, and initialize the ACE Service Configurator. 00058 * 00059 * @note This method should be called before the ORB Core is 00060 * initialized, and before any ORBInitializers are invoked. 00061 */ 00062 int open_services (ACE_Intrusive_Auto_Ptr<ACE_Service_Gestalt> cfg, int& argc, ACE_TCHAR** argv); 00063 00064 /** 00065 * The complement to @c open_services(), this will perform 00066 * appropriate ACE Service Configurator closure operations. It 00067 * should be called as many times as @c open_services(), and will 00068 * only actually close things down on the last call. It is fully 00069 * thread-safe. 00070 * 00071 * @return @c 0 if successful, @c -1 with @c errno set if 00072 * failure. 00073 */ 00074 int close_services (ACE_Intrusive_Auto_Ptr<ACE_Service_Gestalt> pcfg); 00075 00076 /** 00077 * Set default @c `svc.conf' content. 00078 * This function must be called before first ORB initialization. 00079 */ 00080 void default_svc_conf_entries (char const * rf_args, 00081 char const * ssf_args, 00082 char const * csf_args); 00083 00084 } 00085 } 00086 TAO_END_VERSIONED_NAMESPACE_DECL 00087 00088 #include /**/ "ace/post.h" 00089 00090 #endif /* TAO_INTERNAL_H */