Infinispan HotRod C++ Client  8.2.1.Final
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
defs.h
Go to the documentation of this file.
1 #ifndef ISPN_HOTROD_DEFS_H
2 #define ISPN_HOTROD_DEFS_H
3 
5 
6 #include <memory>
7 
8 /*
9  * Handle special cases for stdint.h and the definition for ssize_t.
10  * Third party libraries (e.g. Boost) may provide competing solutions.
11  *
12  * The effects of this include file may be controlled by overrides:
13  * PN_DEFINE_STDINT/PN_NODEFINE_STDINT : turn on/off definition of int64_t etc.
14  * PN_DEFINE_SSIZE_T/PN_NODEFINE_SSIZE_T : turn on/off definition of ssize_t
15  * PN_INCLUDE_STDINT/PN_NOINCLUDE_STDINT : include (or not) stdint.h
16  */
17 
18 // Honor positive overrides
19 #if defined(PN_DEFINE_STDINT)
20 #define PNI_DEFINE_STDINT
21 #endif
22 #if defined(PN_INCLUDE_STDINT)
23 #define PNI_INCLUDE_STDINT)
24 #endif
25 #if defined(PN_DEFINE_SSIZE_T)
26 #define PNI_DEFINE_SSIZE_T
27 #endif
28 
29 // Determinine default action
30 #ifndef _MSC_VER
31 // Not Windows and not using Visual Studio
32 #ifndef PNI_INCLUDE_STDINT
33 #define PNI_INCLUDE_STDINT
34 #endif
35 #else
36 // all versions of Visual Studio
37 #ifndef PNI_DEFINE_SSIZE_T
38 // ssie_t def is needed, unless third party definition interferes, e.g. python/swig
39 #ifndef Py_CONFIG_H
40 #define PNI_DEFINE_SSIZE_T
41 #endif
42 #endif
43 
44 #if (_MSC_VER < 1600)
45 // VS 2008 and earlier
46 #ifndef PNI_DEFINE_STDINT
47 #define PNI_DEFINE_STDINT
48 #endif
49 #else
50 // VS 2010 and newer
51 #ifndef PNI_INCLUDE_STDINT
52 #define PNI_INCLUDE_STDINT
53 #endif
54 
55 #endif // (_MSC_VER < 1600)
56 #endif //_MSC_VER
57 
58 // Honor negative overrides
59 #ifdef PN_NODEFINE_SSIZE_T
60 #undef PNI_DEFINE_SSIZE_T
61 #endif
62 #ifdef PN_NODEFINE_STDINT
63 #undef PNI_DEFINE_STDINT
64 #endif
65 #ifdef PN_NOINCLUDE_STDINT
66 #undef PNI_INCLUDE_STDINT
67 #endif
68 
69 #ifdef PNI_INCLUDE_STDINT
70 #include <stdint.h>
71 #endif
72 
73 #ifdef PNI_DEFINE_SSIZE_T
74 #ifdef _MSC_VER
75 #include <BaseTsd.h>
76 typedef SSIZE_T ssize_t;
77 #else
78 #error ssize_t definition not kown
79 #endif
80 #endif // PNI_DEFINE_SSIZE_T
81 
82 #ifdef PNI_DEFINE_STDINT
83 #ifdef _MSC_VER
84 
85 typedef signed __int8 int8_t;
86 typedef signed __int16 int16_t;
87 typedef signed __int32 int32_t;
88 typedef signed __int64 int64_t;
89 
90 typedef unsigned __int8 uint8_t;
91 typedef unsigned __int16 uint16_t;
92 typedef unsigned __int32 uint32_t;
93 typedef unsigned __int64 uint64_t;
94 
95 #else // _MSC_VER
96 #error stdint.h definitions not kown
97 #endif
98 #endif // PNI_DEFINE_SSIZE_T
99 
100 #ifdef _MSC_VER
101 # define strtoull _strtoui64
102 #endif
103 
104 // warnings
105 #ifndef _MSC_VER
106 # define __pragma(...)
107 #endif
108 
109 #endif /* ISPN_HOTROD_DEFS_H */