Merge pull request #25959 from neo1973/TagLib_deprecation_warnings
[xbmc.git] / lib / libUPnP / Neptune / Source / System / WinRT / NptWinRtThreads.h
blobe38609d0e0b5b28da6d5de01f986409b0034f7fc
1 /*****************************************************************
3 | Neptune - Threads :: WinRT Implementation
5 | (c) 2001-2012 Gilles Boccon-Gibod
6 | Author: Gilles Boccon-Gibod (bok@bok.net)
8 ****************************************************************/
10 /*----------------------------------------------------------------------
11 | includes
12 +---------------------------------------------------------------------*/
13 #include "NptConfig.h"
14 #include "NptTypes.h"
15 #include "NptThreads.h"
16 #include "NptDebug.h"
18 /*----------------------------------------------------------------------
19 | NPT_WinRtMutex
20 +---------------------------------------------------------------------*/
21 class NPT_WinRtMutex : public NPT_MutexInterface
23 public:
24 // methods
25 NPT_WinRtMutex();
26 virtual ~NPT_WinRtMutex();
28 // NPT_Mutex methods
29 virtual NPT_Result Lock();
30 virtual NPT_Result Unlock();
32 private:
33 // members
34 HANDLE m_Handle;
37 /*----------------------------------------------------------------------
38 | NPT_WinRtEvent
39 +---------------------------------------------------------------------*/
40 class NPT_WinRtEvent
42 public:
43 // methods
44 NPT_WinRtEvent(bool manual = false, bool initial = false);
45 virtual ~NPT_WinRtEvent();
47 virtual NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE);
48 virtual void Signal();
49 virtual void Reset();
51 private:
52 // members
53 HANDLE m_Event;
56 /*----------------------------------------------------------------------
57 | NPT_WinRtCriticalSection
58 +---------------------------------------------------------------------*/
59 class NPT_WinRtCriticalSection
61 public:
62 // methods
63 NPT_WinRtCriticalSection();
64 ~NPT_WinRtCriticalSection();
66 // NPT_Mutex methods
67 NPT_Result Lock();
68 NPT_Result Unlock();
70 private:
71 // members
72 CRITICAL_SECTION m_CriticalSection;