OSDN Git Service

Bump version.
[mutilities/MUtilities.git] / src / CriticalSection_Win32.h
index e6f7b84..82e9f9b 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 // MuldeR's Utilities for Qt
-// Copyright (C) 2004-2014 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2016 LoRd_MuldeR <MuldeR2@GMX.de>
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #pragma once
 
 //Win32 API
+#ifndef _INC_WINDOWS
 #define WIN32_LEAN_AND_MEAN 1
 #include <Windows.h>
+#endif //_INC_WINDOWS
 
 ///////////////////////////////////////////////////////////////////////////////
 // CRITICAL SECTION
 ///////////////////////////////////////////////////////////////////////////////
 
-/*
- * wrapper for native Win32 critical sections
- */
-class CriticalSection
+namespace MUtils
 {
-public:
-       inline CriticalSection(void)
+       namespace Internal
        {
-               InitializeCriticalSection(&m_win32criticalSection);
-       }
+               /*
+                * wrapper for native Win32 critical sections
+                */
+               class CriticalSection
+               {
+               public:
+                       inline CriticalSection(void)
+                       {
+                               InitializeCriticalSection(&m_win32criticalSection);
+                       }
 
-       inline ~CriticalSection(void)
-       {
-               DeleteCriticalSection(&m_win32criticalSection);
-       }
+                       inline ~CriticalSection(void)
+                       {
+                               DeleteCriticalSection(&m_win32criticalSection);
+                       }
 
-       inline void enter(void)
-       {
-               EnterCriticalSection(&m_win32criticalSection);
-       }
+                       inline void enter(void)
+                       {
+                               EnterCriticalSection(&m_win32criticalSection);
+                       }
 
-       inline bool tryEnter(void)
-       {
-               return TryEnterCriticalSection(&m_win32criticalSection);
-       }
+                       inline bool tryEnter(void)
+                       {
+                               return TryEnterCriticalSection(&m_win32criticalSection);
+                       }
 
-       inline void leave(void)
-       {
-               LeaveCriticalSection(&m_win32criticalSection);
-       }
+                       inline void leave(void)
+                       {
+                               LeaveCriticalSection(&m_win32criticalSection);
+                       }
 
-protected:
-       CRITICAL_SECTION m_win32criticalSection;
-};
+               protected:
+                       CRITICAL_SECTION m_win32criticalSection;
+               };
 
-/*
- * RAII-style critical section locker
- */
-class CSLocker
-{
-public:
-       inline CSLocker(CriticalSection &criticalSection)
-       :
-               m_locked(false),
-               m_criticalSection(criticalSection)
-       {
-               m_criticalSection.enter();
-               m_locked = true;
-       }
+               /*
               * RAII-style critical section locker
               */
+               class CSLocker
+               {
+               public:
+                       inline CSLocker(CriticalSection &criticalSection)
+                       :
+                               m_locked(false),
+                               m_criticalSection(criticalSection)
+                       {
+                               m_criticalSection.enter();
+                               m_locked = true;
+                       }
 
-       inline ~CSLocker(void)
-       {
-               forceUnlock();
-       }
+                       inline ~CSLocker(void)
+                       {
+                               forceUnlock();
+                       }
 
-       inline void forceUnlock(void)
-       {
-               if(m_locked)
-               {
-                       m_criticalSection.leave();
-                       m_locked = false;
-               }
+                       inline void forceUnlock(void)
+                       {
+                               if(m_locked)
+                               {
+                                       m_criticalSection.leave();
+                                       m_locked = false;
+                               }
+                       }
+               protected:
+                       volatile bool m_locked;
+                       CriticalSection &m_criticalSection;
+               };
        }
-protected:
-       volatile bool m_locked;
-       CriticalSection &m_criticalSection;
-};
+}