00001 #ifndef MUTEX_H_
00002 #define MUTEX_H_
00003
00004 #include "config.h"
00005
00006 #ifdef HAVE_LIBCOMMONCPP
00007 #include <cc++/thread.h>
00008 #else
00009 #include "pthread.h"
00010 #endif
00011
00012 namespace dtn
00013 {
00014 namespace utils
00015 {
00016 #ifdef HAVE_LIBCOMMONCPP
00017 class Mutex : public ost::Mutex
00018 {
00019 public:
00020 Mutex();
00021 ~Mutex();
00022
00023 void lock();
00024 void unlock();
00025 };
00026 #else
00027 class Mutex
00028 {
00029 public:
00030 Mutex();
00031 ~Mutex();
00032
00033 bool tryLock();
00034 void lock();
00035 void unlock();
00036 void enterMutex();
00037 void leaveMutex();
00038
00039 private:
00040 pthread_mutex_t *m_mutex;
00041 };
00042 #endif
00043 }
00044 }
00045
00046 #endif