mutex_w32.hpp
Go to the documentation of this file.
00001 
00010 /*****************************************************************************
00011 ** Ifdefs
00012 *****************************************************************************/
00013 
00014 #ifndef ECL_THREADS_MUTEX_W32_HPP_
00015 #define ECL_THREADS_MUTEX_W32_HPP_
00016 
00017 /*****************************************************************************
00018 ** Platform Check
00019 *****************************************************************************/
00020 
00021 #include <ecl/config/ecl.hpp>
00022 #if defined(ECL_IS_WIN32)
00023 
00024 /*****************************************************************************
00025 ** Includes
00026 *****************************************************************************/
00027 
00028 #include <windows.h>
00029 #include <ecl/time/duration.hpp>
00030 
00031 
00032 /*****************************************************************************
00033 ** Namespaces
00034 *****************************************************************************/
00035 
00036 namespace ecl {
00037 
00038 /*****************************************************************************
00039 ** Typedefs
00040 *****************************************************************************/
00041 
00042 typedef CRITICAL_SECTION RawMutex; 
00044 /*****************************************************************************
00045 ** Class Mutex
00046 *****************************************************************************/
00057 class Mutex {
00058 public:
00066         Mutex(const bool locked = false);
00072         virtual ~Mutex();
00073 
00079         void unlock();
00085         void lock();
00097         bool trylock(Duration &duration);
00106         bool trylock();
00116         unsigned int locks() { return number_locks; }
00117 
00124         RawMutex& rawType() { return mutex; }
00125 
00126 private:
00127         RawMutex mutex;
00128         unsigned int number_locks;
00129 
00130 };
00131 
00132 }; // namespace ecl
00133 
00134 
00135 #endif /* ECL_IS_WIN32 */
00136 #endif /* ECL_THREADS_MUTEX_W32_HPP_ */


ecl_threads
Author(s): Daniel Stonier (d.stonier@gmail.com)
autogenerated on Thu Jan 2 2014 11:12:47