megamove
This commit is contained in:
parent
c2e201f813
commit
f51105bde0
114 changed files with 92 additions and 0 deletions
47
src/win32event.h
Normal file
47
src/win32event.h
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#ifndef WIN32EVENT_H
|
||||
#define WIN32EVENT_H
|
||||
|
||||
#include <WinSock2.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(Reset r, Initial is, int sock, long net_events)
|
||||
: Win32Event(r, is)
|
||||
{
|
||||
WSAEventSelect(sock, hEvent, net_events);
|
||||
}
|
||||
|
||||
~Win32Event()
|
||||
{
|
||||
CloseHandle(hEvent);
|
||||
}
|
||||
|
||||
Win32Event(const Win32Event &) = delete;
|
||||
Win32Event &operator=(const Win32Event &) = delete;
|
||||
|
||||
void set() { SetEvent(hEvent); }
|
||||
|
||||
void reset() { ResetEvent(hEvent); }
|
||||
|
||||
HANDLE handle() { return hEvent; }
|
||||
private:
|
||||
HANDLE hEvent;
|
||||
};
|
||||
|
||||
#endif // WIN32EVENT_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue