00001
00002
00003 #ifndef BASE_MUTEX_H
00004 #define BASE_MUTEX_H
00005
00006 #ifdef _WIN32
00007 #define WIN32_LEAN_AND_MEAN
00008 #include <windows.h>
00009 #else
00010 #include <pthread.h>
00011 #endif
00012 #include "IOException.h"
00013
00014 namespace base {
00016
00020 class PPBASE_EXPORT Mutex {
00021 public:
00023 Mutex();
00024
00026 ~Mutex();
00027
00029
00032 #ifdef _WIN32
00033 HANDLE getMutex();
00034 #else
00035 pthread_mutex_t *getMutex();
00036 #endif
00037
00039 void lock();
00040
00042 void unlock();
00043
00044 protected:
00045 #ifdef _WIN32
00046 HANDLE _mutex;
00047 #else
00048 pthread_mutex_t _mutex;
00049 #endif
00050
00052 DISALLOW_COPY_CONSTRUCTOR_AND_ASSIGNMENT(Mutex);
00053 };
00054 }
00055
00056 #endif