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