summaryrefslogtreecommitdiffstats
path: root/src/OSSupport/Event.h
blob: e2fa65a05fa749231113449c0a9ed47298deb842 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

// Event.h

// Interfaces to the cEvent object representing an OS-specific synchronization primitive that can be waited-for
// Implemented as an Event on Win and as a 1-semaphore on *nix





#pragma once
#ifndef CEVENT_H_INCLUDED
#define CEVENT_H_INCLUDED





class cEvent
{
public:
	cEvent(void);
	~cEvent();

	void Wait(void);
	void Set (void);

	/** Waits for the event until either it is signalled, or the (relative) timeout is passed.
	Returns true if the event was signalled, false if the timeout was hit or there was an error. */
	bool Wait(int a_TimeoutMSec);
	
private:

	#ifdef _WIN32
	HANDLE m_Event;
	#else
	sem_t * m_Event;
	bool    m_bIsNamed;
	#endif
} ;






#endif  // CEVENT_H_INCLUDED