Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
win32event.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
12
#include "
core/types.h
"
13
14
//------------------------------------------------------------------------------
15
namespace
Win32
16
{
17
class
Win32Event
18
{
19
public
:
21
Win32Event
(
bool
manualReset=
false
);
23
Win32Event
(
void
*
event
);
25
Win32Event
(
Win32Event
&& rhs);
27
~Win32Event
();
28
30
void
Signal
();
32
void
Reset
();
34
void
Wait
()
const
;
36
bool
WaitTimeout
(
int
ms)
const
;
38
bool
Peek
()
const
;
40
bool
IsManual
()
const
;
41
42
private
:
43
bool
manual
;
44
HANDLE
event
;
45
};
46
47
//------------------------------------------------------------------------------
50
inline
51
Win32Event::Win32Event
(
bool
manualReset)
52
{
53
this->
event
=
CreateEvent
(NULL, manualReset, FALSE, NULL);
54
this->
manual
= manualReset;
55
n_assert
(0 != this->
event
);
56
}
57
58
//------------------------------------------------------------------------------
61
inline
62
Win32Event::Win32Event
(
void
*
event
)
63
{
64
this->
manual
=
false
;
65
this->
event
= event;
66
}
67
68
//------------------------------------------------------------------------------
71
inline
72
Win32Event::Win32Event
(
Win32Event
&& rhs)
73
{
74
if
(this->
event
)
75
CloseHandle(this->
event
);
76
this->
event
= rhs.event;
77
this->
manual
= rhs.manual;
78
rhs.event =
nullptr
;
79
}
80
81
//------------------------------------------------------------------------------
84
inline
85
Win32Event::~Win32Event
()
86
{
87
if
(this->
event
!=
nullptr
)
88
{
89
CloseHandle(this->
event
);
90
this->
event
=
nullptr
;
91
}
92
}
93
94
//------------------------------------------------------------------------------
97
inline
void
98
Win32Event::Signal
()
99
{
100
SetEvent(this->
event
);
101
}
102
103
//------------------------------------------------------------------------------
106
inline
void
107
Win32Event::Reset
()
108
{
109
ResetEvent(this->
event
);
110
}
111
112
//------------------------------------------------------------------------------
115
inline
void
116
Win32Event::Wait
()
const
117
{
118
WaitForSingleObject(this->
event
, INFINITE);
119
}
120
121
//------------------------------------------------------------------------------
128
inline
bool
129
Win32Event::WaitTimeout
(
int
timeoutInMilliSec)
const
130
{
131
DWORD res = WaitForSingleObject(this->
event
, timeoutInMilliSec);
132
return
(WAIT_TIMEOUT == res) ? false :
true
;
133
}
134
135
//------------------------------------------------------------------------------
139
inline
bool
140
Win32Event::Peek
()
const
141
{
142
DWORD res = WaitForSingleObject(this->
event
, 0);
143
return
(WAIT_TIMEOUT == res) ? false :
true
;
144
}
145
146
//------------------------------------------------------------------------------
149
inline
bool
150
Win32Event::IsManual
()
const
151
{
152
return
this->
manual
;
153
}
154
155
}
// namespace Win32
156
//------------------------------------------------------------------------------
157
Win32::Win32Event::manual
bool manual
Definition
win32event.h:43
Win32::Win32Event::~Win32Event
~Win32Event()
destructor
Definition
win32event.h:85
Win32::Win32Event::event
HANDLE event
Definition
win32event.h:44
Win32::Win32Event::IsManual
bool IsManual() const
Returns true if event is manually reset.
Definition
win32event.h:150
Win32::Win32Event::Win32Event
Win32Event(bool manualReset=false)
constructor
Definition
win32event.h:51
Win32::Win32Event::Wait
void Wait() const
wait for the event to become signalled
Definition
win32event.h:116
Win32::Win32Event::Signal
void Signal()
signal the event
Definition
win32event.h:98
Win32::Win32Event::Peek
bool Peek() const
check if event is signalled
Definition
win32event.h:140
Win32::Win32Event::Reset
void Reset()
reset the event (only if manual reset)
Definition
win32event.h:107
Win32::Win32Event::WaitTimeout
bool WaitTimeout(int ms) const
wait for the event with timeout in millisecs
Definition
win32event.h:129
n_assert
#define n_assert(exp)
Definition
debug.h:50
CoreGraphics::CreateEvent
EventId CreateEvent(const EventCreateInfo &info)
create new event
Definition
vkevent.cc:42
Win32
[TODO: Describe Win32 subsystem]
types.h
code
foundation
threading
win32
win32event.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.