summaryrefslogtreecommitdiff
path: root/ACE/ace/config-lite.h
blob: 9fcc12c2a6bf55eb139a90730f08e424387dfef5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// -*- C++ -*-

//==========================================================================
/**
 *  @file   config-lite.h
 *
 *  @author Doug Schmidt <d.schmidt@vanderbilt.edu>
 *  @author Jesper S. M|ller<stophph@diku.dk>
 *  @author and a cast of thousands...
 *
 *  This file contains the contents of the old config-all.h in order to
 *  avoid a circular dependency problem caused by some of the new
 *  includes added to config-all.h, e.g., OS_main.h.
 */
//==========================================================================

#ifndef ACE_CONFIG_LITE_H
#define ACE_CONFIG_LITE_H

#include /**/ "ace/pre.h"

#include "ace/config-macros.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

// ============================================================================
// UNICODE macros (to be added later)
// ============================================================================

// Get the unicode (i.e. ACE_TCHAR) defines
# include "ace/ace_wchar.h"

// ============================================================================
// at_exit declarations
// ============================================================================

ACE_BEGIN_VERSIONED_NAMESPACE_DECL

// Marker for cleanup, used by ACE_Exit_Info.
extern int ace_exit_hook_marker;

ACE_END_VERSIONED_NAMESPACE_DECL

// For use by <ACE_OS::exit>.
extern "C"
{
  typedef void (*ACE_EXIT_HOOK) ();
}

// Signature for registering a cleanup function that is used by the
// ACE_Object_Manager and the ACE_Thread_Manager.
# if defined (ACE_HAS_SIG_C_FUNC)
extern "C" {
# endif /* ACE_HAS_SIG_C_FUNC */
typedef void (*ACE_CLEANUP_FUNC)(void *object, void *param) /* noexcept */;
# if defined (ACE_HAS_SIG_C_FUNC)
}
# endif /* ACE_HAS_SIG_C_FUNC */

// ============================================================================
// log_msg declarations
// ============================================================================

ACE_BEGIN_VERSIONED_NAMESPACE_DECL

# if defined (ACE_HAS_WIN32_STRUCTURED_EXCEPTIONS)
typedef int (*ACE_SEH_EXCEPT_HANDLER)(void *);
// Prototype of win32 structured exception handler functions.
// They are used to get the exception handling expression or
// as exception handlers.
# endif /* ACE_HAS_WIN32_STRUCTURED_EXCEPTIONS */

class ACE_OS_Thread_Descriptor;
class ACE_OS_Log_Msg_Attributes;
typedef void (*ACE_INIT_LOG_MSG_HOOK) (ACE_OS_Log_Msg_Attributes &attr
# if defined (ACE_HAS_WIN32_STRUCTURED_EXCEPTIONS)
                                       , ACE_SEH_EXCEPT_HANDLER selector
                                       , ACE_SEH_EXCEPT_HANDLER handler
# endif /* ACE_HAS_WIN32_STRUCTURED_EXCEPTIONS */
                                       );
typedef void (*ACE_INHERIT_LOG_MSG_HOOK) (ACE_OS_Thread_Descriptor*,
                                          ACE_OS_Log_Msg_Attributes &);

typedef void (*ACE_CLOSE_LOG_MSG_HOOK) ();

typedef void (*ACE_SYNC_LOG_MSG_HOOK) (const ACE_TCHAR *prog_name);

typedef ACE_OS_Thread_Descriptor *(*ACE_THR_DESC_LOG_MSG_HOOK) ();

ACE_END_VERSIONED_NAMESPACE_DECL

/**
 * @deprecated ACE_DECLARE_STL_REVERSE_ITERATORS is a crutch to be
 *             used until all C++ compiler supported by ACE support
 *             the standard reverse_iterator adapters.
 * @internal   ACE_DECLARE_STL_REVERSE_ITERATORS is not meant for use
 *             outside of ACE.
 */
// STL reverse_iterator declaration generator
// Make sure you include <iterator> in the file you're using this
// generator, and that the following traits are available:
//
//   iterator
//   const_iterator
//   value_type
//   reference
//   pointer
//   const_reference
//   const_pointer
//   difference_type
//
// Once all C++ compilers support the standard reverse_iterator
// adapters, we can drop this generator macro or at least drop the
// MSVC++ or Sun Studio preprocessor conditional blocks.
#if defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x5140 \
      && !defined (_STLPORT_VERSION)
  // If we're not using the stlport4 C++ library (which has standard
  // iterators), we need to ensure this is included in order to test
  // the _RWSTD_NO_CLASS_PARTIAL_SPEC feature test macro below.
# include <Cstd/stdcomp.h>
#endif /* __SUNPRO_CC <= 0x5110 */
#if defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x5140 \
    && defined (_RWSTD_NO_CLASS_PARTIAL_SPEC)
# define ACE_DECLARE_STL_REVERSE_ITERATORS \
  typedef std::reverse_iterator<iterator, \
                                std::input_iterator_tag, \
                                value_type, \
                                reference, \
                                pointer, \
                                difference_type> reverse_iterator; \
  typedef std::reverse_iterator<const_iterator, \
                                std::input_iterator_tag, \
                                value_type const, \
                                const_reference, \
                                const_pointer, \
                                difference_type> const_reverse_iterator;
#else
# define ACE_DECLARE_STL_REVERSE_ITERATORS \
  typedef std::reverse_iterator<iterator>       reverse_iterator; \
  typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
#endif  /* _MSC_VER && _WIN64 */

#include /**/ "ace/post.h"

#endif /* ACE_CONFIG_LITE_H */