///////////////////////////////////////////////////////////////////////////////
// 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;
-};
+}