diff deps/Platinum/ThirdParty/Neptune/Source/System/Win32/NptWin32Threads.h @ 0:3425707ddbf6

Initial import (hopefully this mercurial stuff works...)
author fraserofthenight
date Mon, 06 Jul 2009 08:06:28 -0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deps/Platinum/ThirdParty/Neptune/Source/System/Win32/NptWin32Threads.h	Mon Jul 06 08:06:28 2009 -0700
@@ -0,0 +1,73 @@
+/*****************************************************************
+|
+|   Neptune - Threads :: Win32 Implementation
+|
+|   (c) 2001-2003 Gilles Boccon-Gibod
+|   Author: Gilles Boccon-Gibod (bok@bok.net)
+|
+ ****************************************************************/
+
+/*----------------------------------------------------------------------
+|   includes
++---------------------------------------------------------------------*/
+#include "NptConfig.h"
+#include "NptTypes.h"
+#include "NptThreads.h"
+#include "NptDebug.h"
+
+/*----------------------------------------------------------------------
+|   NPT_Win32Mutex
++---------------------------------------------------------------------*/
+class NPT_Win32Mutex : public NPT_MutexInterface
+{
+public:
+    // methods
+             NPT_Win32Mutex();
+    virtual ~NPT_Win32Mutex();
+
+    // NPT_Mutex methods
+    virtual NPT_Result Lock();
+    virtual NPT_Result Unlock();
+
+private:
+    // members
+    HANDLE m_Handle;
+};
+
+/*----------------------------------------------------------------------
+|   NPT_Win32Event
++---------------------------------------------------------------------*/
+class NPT_Win32Event
+{
+public:
+    // methods
+             NPT_Win32Event(bool manual = false, bool initial = false);
+    virtual ~NPT_Win32Event();
+
+    virtual NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
+    virtual void       Signal();
+    virtual void       Reset();
+
+private:
+    // members
+    HANDLE m_Event;
+};
+
+/*----------------------------------------------------------------------
+|   NPT_Win32CriticalSection
++---------------------------------------------------------------------*/
+class NPT_Win32CriticalSection
+{
+public:
+    // methods
+    NPT_Win32CriticalSection();
+   ~NPT_Win32CriticalSection();
+
+    // NPT_Mutex methods
+    NPT_Result Lock();
+    NPT_Result Unlock();
+
+private:
+    // members
+    CRITICAL_SECTION m_CriticalSection;
+};