summaryrefslogtreecommitdiff
path: root/TAO/tao/idl_features.h
blob: c9453aede18ba932d794628ad78bb5b5d4957163 (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
/**
 * @file idl_features.h
 *
 * Get information about what IDL features the IDL compiler has, similarly to
 * the "version" standard header in C++.
 *
 * In C++ it can be used like this if you want to be compatible with older
 * versions of TAO:
 *
 * #include "tao/orbconf.h"
 * #if defined TAO_HAS_IDL_FEATURES && TAO_HAS_IDL_FEATURES
 * // Use this macro if you are using something that's not the max possible
 * // version.
 * #  define TAO_IDL_IDL_VERSION 0x30000
 * #  include "tao/idl_features.h"
 * #  if defined TAO_IDL_HAS_FEATURE && TAO_IDL_HAS_FEATURE
 * #    define USE_FEATURE
 * #  endif
 * #endif
 *
 * In IDL it can be used like this if you want to be compatible with older
 * versions of TAO:
 *
 * #if defined __TAO_IDL_FEATURES
 * #  include __TAO_IDL_FEATURES
 * #  if defined TAO_IDL_HAS_FEATURE && TAO_IDL_HAS_FEATURE
 * #    define USE_FEATURE
 * #  endif
 * #endif
 *
 * Note that support for annotations and anonymous types in IDL4 predate this
 * file, so they are a potential special case depending on what ACE/TAO is
 * being used.
 */

#ifndef TAO_IDL_FEATURES_H
#define TAO_IDL_FEATURES_H

#ifndef TAO_IDL_IDL_VERSION
#  ifdef __TAO_IDL_IDL_VERSION
#    define TAO_IDL_IDL_VERSION __TAO_IDL_IDL_VERSION
#  else
#    define TAO_IDL_IDL_VERSION 0xffffffff
#  endif
#endif

#ifndef TAO_IDL_HAS_ANNOTATIONS
#  define TAO_IDL_HAS_ANNOTATIONS TAO_IDL_IDL_VERSION >= 0x40000
#endif

#ifndef TAO_IDL_HAS_ANONYMOUS_TYPES
#  define TAO_IDL_HAS_ANONYMOUS_TYPES TAO_IDL_IDL_VERSION >= 0x40000
#endif

#ifndef TAO_IDL_HAS_EXPLICIT_INTS
#  define TAO_IDL_HAS_EXPLICIT_INTS TAO_IDL_IDL_VERSION >= 0x40000
#endif

#ifndef TAO_IDL_HAS_OCTET_AND_WCHAR_UNION_DISCS
#  define TAO_IDL_HAS_OCTET_AND_WCHAR_UNION_DISCS 0
#endif

#ifndef TAO_IDL_HAS_STRUCT_INHERITANCE
#  define TAO_IDL_HAS_STRUCT_INHERITANCE 0
#endif

#ifndef TAO_IDL_HAS_MAP
#  define TAO_IDL_HAS_MAP 0
#endif

#ifndef TAO_IDL_HAS_BITSET
#  define TAO_IDL_HAS_BITSET 0
#endif

#ifndef TAO_IDL_HAS_BITMASK
#  define TAO_IDL_HAS_BITMASK 0
#endif

#endif