Fix public header files so that they do not include from boost
[dyninst.git] / dynutil / h / dyntypes.h
1
2 #if !defined(DYNTYPES_H)
3 #define DYNTYPES_H
4
5 #if defined(_MSC_VER)
6 #define WIN32_LEAN_AND_MEAN
7 #include <windows.h>
8 #endif
9
10 #ifndef FILE__
11 #define FILE__ strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__
12 #endif
13
14 #if defined (_MSC_VER)
15   //**************** Windows ********************
16   #include <hash_map>
17   #define dyn_hash_map stdext::hash_map
18   #define DECLTHROW(x)
19 #elif defined(__GNUC__)
20   #include <functional>
21   #define DECLTHROW(x) throw(x)
22   //***************** GCC ***********************
23    #if (__GNUC__ > 4) || \
24       (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
25       //**************** GCC >= 4.3.0 ***********
26       #include <tr1/unordered_set>
27       #include <tr1/unordered_map>
28       #define dyn_hash_set std::tr1::unordered_set
29       #define dyn_hash_map std::tr1::unordered_map
30    #else
31       //**************** GCC < 4.3.0 ************
32       #include <ext/hash_map>
33       #include <ext/hash_set>
34       #define dyn_hash_set __gnu_cxx::hash_set
35       #define dyn_hash_map __gnu_cxx::hash_map    
36       using namespace __gnu_cxx;
37       namespace __gnu_cxx {
38  
39         template<> struct hash<std::string> {
40            hash<char*> h;
41            unsigned operator()(const std::string &s) const {
42              return h(s.c_str());
43            };
44         };
45       }
46
47    #endif
48 #else
49    #error Unknown compiler
50 #endif
51
52
53 namespace Dyninst
54 {
55    typedef unsigned long Address;   
56    typedef unsigned long Offset;
57
58 #if defined(_MSC_VER)
59    typedef HANDLE PID;
60    typedef HANDLE LWP;
61    typedef HANDLE THR_ID;
62
63 #define NULL_PID     INVALID_HANDLE_VALUE
64 #define NULL_LWP     INVALID_HANDLE_VALUE
65 #define NULL_THR_ID     INVALID_HANDLE_VALUE
66
67 #else
68    typedef int PID;
69    typedef int LWP;
70    typedef int THR_ID;
71
72 #define NULL_PID     -1
73 #define NULL_LWP     -1
74 #define NULL_THR_ID     -1
75 #endif
76 }
77
78 #endif