Added the thread safe TSQueue and using it in mainwindow to replace the adhoc queue implementation.
This commit is contained in:
parent
c551d982c6
commit
83064ab86b
10 changed files with 253 additions and 27 deletions
40
win32event.h
Normal file
40
win32event.h
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#ifndef WIN32EVENT_H
|
||||
#define WIN32EVENT_H
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
/** Simpel wrapper around a Win32 Event object.
|
||||
|
||||
Mostly to make cleanup automatic.*/
|
||||
class Win32Event {
|
||||
public:
|
||||
enum class Reset { Auto=0, Manual=1 };
|
||||
enum class Initial { Clear=0, Set=1 };
|
||||
|
||||
Win32Event(Reset r, Initial is)
|
||||
: hEvent(CreateEvent(
|
||||
nullptr, // _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes,
|
||||
BOOL(r), // _In_ BOOL bManualReset,
|
||||
BOOL(is), // _In_ BOOL bInitialState,
|
||||
nullptr //_In_opt_ LPCTSTR lpName
|
||||
))
|
||||
{}
|
||||
|
||||
~Win32Event()
|
||||
{
|
||||
CloseHandle(hEvent);
|
||||
}
|
||||
|
||||
Win32Event(const Win32Event &) = delete;
|
||||
Win32Event &operator=(const Win32Event &) = delete;
|
||||
|
||||
void Set() { SetEvent(hEvent); }
|
||||
|
||||
void Reset() { ResetEvent(hEvent); }
|
||||
|
||||
HANDLE GetHandle() { return hEvent; }
|
||||
private:
|
||||
HANDLE hEvent;
|
||||
};
|
||||
|
||||
#endif // WIN32EVENT_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue