00001 00005 #ifndef MUTEX_HPP 00006 #define MUTEX_HPP 00007 00008 #include "sick_scan/tcp/BasicDatatypes.hpp" 00009 #include <pthread.h> 00010 00011 00012 // 00013 // Mutex class 00014 // 00015 class Mutex 00016 { 00017 public: 00018 Mutex(); 00019 ~Mutex(); 00020 00021 void lock(); 00022 void unlock(); 00023 00024 private: 00025 pthread_mutex_t m_mutex; 00026 }; 00027 00028 00029 00030 // 00031 // Scoped Lock. 00032 // Zerstoert das Mutex automatisch. 00033 // 00034 class ScopedLock 00035 { 00036 public: 00037 ScopedLock(Mutex* mutexPtr); 00038 ~ScopedLock(); 00039 private: 00040 Mutex* m_mutexPtr; 00041 }; 00042 00043 00044 #endif // MUTEX_HPP