Updated logging to include the class/method so that it is more obvious where these...
[ACE_TAO.git] / TAO / tao / idl_features.h
blobc9453aede18ba932d794628ad78bb5b5d4957163
1 /**
2 * @file idl_features.h
4 * Get information about what IDL features the IDL compiler has, similarly to
5 * the "version" standard header in C++.
7 * In C++ it can be used like this if you want to be compatible with older
8 * versions of TAO:
10 * #include "tao/orbconf.h"
11 * #if defined TAO_HAS_IDL_FEATURES && TAO_HAS_IDL_FEATURES
12 * // Use this macro if you are using something that's not the max possible
13 * // version.
14 * # define TAO_IDL_IDL_VERSION 0x30000
15 * # include "tao/idl_features.h"
16 * # if defined TAO_IDL_HAS_FEATURE && TAO_IDL_HAS_FEATURE
17 * # define USE_FEATURE
18 * # endif
19 * #endif
21 * In IDL it can be used like this if you want to be compatible with older
22 * versions of TAO:
24 * #if defined __TAO_IDL_FEATURES
25 * # include __TAO_IDL_FEATURES
26 * # if defined TAO_IDL_HAS_FEATURE && TAO_IDL_HAS_FEATURE
27 * # define USE_FEATURE
28 * # endif
29 * #endif
31 * Note that support for annotations and anonymous types in IDL4 predate this
32 * file, so they are a potential special case depending on what ACE/TAO is
33 * being used.
36 #ifndef TAO_IDL_FEATURES_H
37 #define TAO_IDL_FEATURES_H
39 #ifndef TAO_IDL_IDL_VERSION
40 # ifdef __TAO_IDL_IDL_VERSION
41 # define TAO_IDL_IDL_VERSION __TAO_IDL_IDL_VERSION
42 # else
43 # define TAO_IDL_IDL_VERSION 0xffffffff
44 # endif
45 #endif
47 #ifndef TAO_IDL_HAS_ANNOTATIONS
48 # define TAO_IDL_HAS_ANNOTATIONS TAO_IDL_IDL_VERSION >= 0x40000
49 #endif
51 #ifndef TAO_IDL_HAS_ANONYMOUS_TYPES
52 # define TAO_IDL_HAS_ANONYMOUS_TYPES TAO_IDL_IDL_VERSION >= 0x40000
53 #endif
55 #ifndef TAO_IDL_HAS_EXPLICIT_INTS
56 # define TAO_IDL_HAS_EXPLICIT_INTS TAO_IDL_IDL_VERSION >= 0x40000
57 #endif
59 #ifndef TAO_IDL_HAS_OCTET_AND_WCHAR_UNION_DISCS
60 # define TAO_IDL_HAS_OCTET_AND_WCHAR_UNION_DISCS 0
61 #endif
63 #ifndef TAO_IDL_HAS_STRUCT_INHERITANCE
64 # define TAO_IDL_HAS_STRUCT_INHERITANCE 0
65 #endif
67 #ifndef TAO_IDL_HAS_MAP
68 # define TAO_IDL_HAS_MAP 0
69 #endif
71 #ifndef TAO_IDL_HAS_BITSET
72 # define TAO_IDL_HAS_BITSET 0
73 #endif
75 #ifndef TAO_IDL_HAS_BITMASK
76 # define TAO_IDL_HAS_BITMASK 0
77 #endif
79 #endif