config-lite.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //==========================================================================
00004 /**
00005  *  @file   config-lite.h
00006  *
00007  *  $Id: config-lite.h 80826 2008-03-04 14:51:23Z wotte $
00008  *
00009  *  @author (Originally in OS.h)Doug Schmidt <schmidt@cs.wustl.edu>
00010  *  @author Jesper S. M|ller<stophph@diku.dk>
00011  *  @author and a cast of thousands...
00012  *
00013  *  This file contains the contents of the old config-all.h in order to
00014  *  avoid a circular dependency problem caused by some of the new
00015  *  includes added to config-all.h, e.g., OS_main.h.
00016  */
00017 //==========================================================================
00018 
00019 #ifndef ACE_CONFIG_LITE_H
00020 #define ACE_CONFIG_LITE_H
00021 
00022 #include /**/ "ace/pre.h"
00023 
00024 #include "ace/config-macros.h"
00025 
00026 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00027 # pragma once
00028 #endif /* ACE_LACKS_PRAGMA_ONCE */
00029 
00030 // Empty ACE_OS namespace to help identify compiler errors more
00031 // easily.      -- @@ Do we really need this?
00032 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00033 namespace ACE_OS {}
00034 ACE_END_VERSIONED_NAMESPACE_DECL
00035 
00036 // ============================================================================
00037 // UNICODE macros (to be added later)
00038 // ============================================================================
00039 
00040 // Get the unicode (i.e. ACE_TCHAR) defines
00041 # include "ace/ace_wchar.h"
00042 
00043 // ============================================================================
00044 // at_exit declarations
00045 // ============================================================================
00046 
00047 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00048 
00049 // Marker for cleanup, used by ACE_Exit_Info.
00050 extern int ace_exit_hook_marker;
00051 
00052 ACE_END_VERSIONED_NAMESPACE_DECL
00053 
00054 // For use by <ACE_OS::exit>.
00055 extern "C"
00056 {
00057   typedef void (*ACE_EXIT_HOOK) (void);
00058 }
00059 
00060 // Signature for registering a cleanup function that is used by the
00061 // ACE_Object_Manager and the ACE_Thread_Manager.
00062 # if defined (ACE_HAS_SIG_C_FUNC)
00063 extern "C" {
00064 # endif /* ACE_HAS_SIG_C_FUNC */
00065 typedef void (*ACE_CLEANUP_FUNC)(void *object, void *param) /* throw () */;
00066 # if defined (ACE_HAS_SIG_C_FUNC)
00067 }
00068 # endif /* ACE_HAS_SIG_C_FUNC */
00069 
00070 // ============================================================================
00071 // log_msg declarations
00072 // ============================================================================
00073 
00074 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00075 
00076 # if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
00077 typedef int (*ACE_SEH_EXCEPT_HANDLER)(void *);
00078 // Prototype of win32 structured exception handler functions.
00079 // They are used to get the exception handling expression or
00080 // as exception handlers.
00081 # endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
00082 
00083 class ACE_OS_Thread_Descriptor;
00084 class ACE_OS_Log_Msg_Attributes;
00085 typedef void (*ACE_INIT_LOG_MSG_HOOK) (ACE_OS_Log_Msg_Attributes &attr
00086 # if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
00087                                        , ACE_SEH_EXCEPT_HANDLER selector
00088                                        , ACE_SEH_EXCEPT_HANDLER handler
00089 # endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
00090                                        );
00091 typedef void (*ACE_INHERIT_LOG_MSG_HOOK) (ACE_OS_Thread_Descriptor*,
00092                                           ACE_OS_Log_Msg_Attributes &);
00093 
00094 typedef void (*ACE_CLOSE_LOG_MSG_HOOK) (void);
00095 
00096 typedef void (*ACE_SYNC_LOG_MSG_HOOK) (const ACE_TCHAR *prog_name);
00097 
00098 typedef ACE_OS_Thread_Descriptor *(*ACE_THR_DESC_LOG_MSG_HOOK) (void);
00099 
00100 ACE_END_VERSIONED_NAMESPACE_DECL
00101 
00102 /**
00103  * @deprecated ACE_DECLARE_STL_REVERSE_ITERATORS is a crutch to be
00104  *             used until all C++ compiler supported by ACE support
00105  *             the standard reverse_iterator adapters.
00106  * @internal   ACE_DECLARE_STL_REVERSE_ITERATORS is not meant for use
00107  *             outside of ACE.
00108  */
00109 // STL reverse_iterator declaration generator
00110 // Make sure you include <iterator> in the file you're using this
00111 // generator, and that the following traits are available:
00112 //
00113 //   iterator
00114 //   const_iterator
00115 //   value_type
00116 //   reference
00117 //   pointer
00118 //   const_reference
00119 //   const_pointer
00120 //   difference_type
00121 //
00122 // Once all C++ compilers support the standard reverse_iterator
00123 // adapters, we can drop this generator macro or at least drop the
00124 // MSVC++ or Sun Studio preprocessor conditional blocks.
00125 #if defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x590 \
00126       && !defined (_STLPORT_VERSION)
00127   // If we're not using the stlport4 C++ library (which has standard
00128   // iterators), we need to ensure this is included in order to test
00129   // the _RWSTD_NO_CLASS_PARTIAL_SPEC feature test macro below.
00130 # include <Cstd/stdcomp.h>
00131 #endif /* __SUNPRO_CC <= 0x580 */
00132 #if (defined (_MSC_VER) && (_MSC_VER <= 1310) && defined (_WIN64)) \
00133     || defined (ACE_HAS_BROKEN_STD_REVERSE_ITERATOR)
00134   // VC 7.1 and the latest 64-bit platform SDK still don't define a standard
00135   // compliant reverse_iterator adapter.
00136 # define ACE_DECLARE_STL_REVERSE_ITERATORS \
00137   typedef std::reverse_iterator<iterator, value_type> reverse_iterator; \
00138   typedef std::reverse_iterator<const_iterator, \
00139                                 value_type const> const_reverse_iterator;
00140 #elif defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x590 \
00141       && defined (_RWSTD_NO_CLASS_PARTIAL_SPEC)
00142 # define ACE_DECLARE_STL_REVERSE_ITERATORS \
00143   typedef std::reverse_iterator<iterator, \
00144                                 std::input_iterator_tag, \
00145                                 value_type, \
00146                                 reference, \
00147                                 pointer, \
00148                                 difference_type> reverse_iterator; \
00149   typedef std::reverse_iterator<const_iterator, \
00150                                 std::input_iterator_tag, \
00151                                 value_type const, \
00152                                 const_reference, \
00153                                 const_pointer, \
00154                                 difference_type> const_reverse_iterator;
00155 #else
00156 # define ACE_DECLARE_STL_REVERSE_ITERATORS \
00157   typedef std::reverse_iterator<iterator>       reverse_iterator; \
00158   typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
00159 #endif  /* _MSC_VER && _WIN64 */
00160 
00161 
00162 #include /**/ "ace/post.h"
00163 
00164 #endif /* ACE_CONFIG_LITE_H */

Generated on Tue Feb 2 17:18:38 2010 for ACE by  doxygen 1.4.7