Infinispan HotRod C++ Client 9.2.0.Final
Loading...
Searching...
No Matches
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>
76typedef 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
85typedef signed __int8 int8_t;
86typedef signed __int16 int16_t;
87typedef signed __int32 int32_t;
88typedef signed __int64 int64_t;
89
90typedef unsigned __int8 uint8_t;
91typedef unsigned __int16 uint16_t;
92typedef unsigned __int32 uint32_t;
93typedef 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 */