Mutex.h

00001 // $Id: Mutex.h 21 2010-09-05 04:18:17Z cschwarz1 $
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