/builddir/build/BUILD/infinispan-hotrod-cpp-6.2.1.Final-Source/include/infinispan/hotrod/defs.h

Go to the documentation of this file.
00001 #ifndef ISPN_HOTROD_DEFS_H
00002 #define ISPN_HOTROD_DEFS_H
00003 
00004 #include "infinispan/hotrod/ImportExport.h"
00005 
00006 // Platform dependent shared_ptr definition.  Todo: more platforms, more elegance.
00007 #if (defined (__GNUC__) && __GNUC__ >= 4 ) || defined(SWIG) || defined(SWIGMAC)
00008     #include <tr1/memory>
00009     #define HR_SHARED_PTR std::tr1::shared_ptr
00010 #elif defined (_MSC_VER) || defined(SWIGWIN)
00011     // TODO: handle multiple VS versions 
00012     #include <memory>
00013     #define  HR_SHARED_PTR std::tr1::shared_ptr
00014 #endif
00015 
00016 /*
00017  * Handle special cases for stdint.h and the definition for ssize_t.
00018  * Third party libraries (e.g. Boost) may provide competing solutions.
00019  *
00020  * The effects of this include file may be controlled by overrides:
00021  *  PN_DEFINE_STDINT/PN_NODEFINE_STDINT   : turn on/off definition of int64_t etc.
00022  *  PN_DEFINE_SSIZE_T/PN_NODEFINE_SSIZE_T : turn on/off definition of ssize_t
00023  *  PN_INCLUDE_STDINT/PN_NOINCLUDE_STDINT : include (or not) stdint.h
00024  */
00025 
00026 // Honor positive overrides
00027 #if defined(PN_DEFINE_STDINT)
00028 #define PNI_DEFINE_STDINT
00029 #endif
00030 #if defined(PN_INCLUDE_STDINT)
00031 #define PNI_INCLUDE_STDINT)
00032 #endif
00033 #if defined(PN_DEFINE_SSIZE_T)
00034 #define PNI_DEFINE_SSIZE_T
00035 #endif
00036 
00037 // Determinine default action
00038 #ifndef _MSC_VER
00039 // Not Windows and not using Visual Studio
00040 #ifndef PNI_INCLUDE_STDINT
00041 #define PNI_INCLUDE_STDINT
00042 #endif
00043 #else
00044 // all versions of Visual Studio
00045 #ifndef PNI_DEFINE_SSIZE_T
00046 // ssie_t def is needed, unless third party definition interferes, e.g. python/swig
00047 #ifndef Py_CONFIG_H
00048 #define PNI_DEFINE_SSIZE_T
00049 #endif
00050 #endif
00051 
00052 #if (_MSC_VER < 1600)
00053 // VS 2008 and earlier
00054 #ifndef PNI_DEFINE_STDINT
00055 #define PNI_DEFINE_STDINT
00056 #endif
00057 #else
00058 // VS 2010 and newer
00059 #ifndef PNI_INCLUDE_STDINT
00060 #define PNI_INCLUDE_STDINT
00061 #endif
00062 
00063 #endif // (_MSC_VER < 1600)
00064 #endif //_MSC_VER
00065 
00066 // Honor negative overrides
00067 #ifdef PN_NODEFINE_SSIZE_T
00068 #undef PNI_DEFINE_SSIZE_T
00069 #endif
00070 #ifdef PN_NODEFINE_STDINT
00071 #undef PNI_DEFINE_STDINT
00072 #endif
00073 #ifdef PN_NOINCLUDE_STDINT
00074 #undef PNI_INCLUDE_STDINT
00075 #endif
00076 
00077 #ifdef PNI_INCLUDE_STDINT
00078 #include <stdint.h>
00079 #endif
00080 
00081 #ifdef PNI_DEFINE_SSIZE_T
00082 #ifdef _MSC_VER
00083 #include <BaseTsd.h>
00084 typedef SSIZE_T ssize_t;
00085 #else
00086 #error ssize_t definition not kown
00087 #endif
00088 #endif // PNI_DEFINE_SSIZE_T
00089 
00090 #ifdef PNI_DEFINE_STDINT
00091 #ifdef _MSC_VER
00092 
00093 typedef signed __int8 int8_t;
00094 typedef signed __int16 int16_t;
00095 typedef signed __int32 int32_t;
00096 typedef signed __int64 int64_t;
00097 
00098 typedef unsigned __int8 uint8_t;
00099 typedef unsigned __int16 uint16_t;
00100 typedef unsigned __int32 uint32_t;
00101 typedef unsigned __int64 uint64_t;
00102 
00103 #else // _MSC_VER
00104 #error stdint.h definitions not kown
00105 #endif
00106 #endif // PNI_DEFINE_SSIZE_T
00107 
00108 #ifdef _MSC_VER
00109 #   define strtoull _strtoui64
00110 #endif
00111 
00112 // warnings
00113 #ifndef _MSC_VER
00114 #   define __pragma(...)
00115 #endif
00116 
00117 #endif  /* ISPN_HOTROD_DEFS_H */

Generated on 25 Mar 2015 for JBoss Data Grid HotRod C++ Client by  doxygen 1.4.7