OpenZWave Library
1.2
cpp
src
platform
windows
WaitImpl.h
Go to the documentation of this file.
1
//-----------------------------------------------------------------------------
2
//
3
// WaitImpl.h
4
//
5
// Windows implementation of a base class for objects we
6
// want to be able to wait for.
7
//
8
// Copyright (c) 2010 Mal Lansell <mal@lansell.org>
9
// All rights reserved.
10
//
11
// SOFTWARE NOTICE AND LICENSE
12
//
13
// This file is part of OpenZWave.
14
//
15
// OpenZWave is free software: you can redistribute it and/or modify
16
// it under the terms of the GNU Lesser General Public License as published
17
// by the Free Software Foundation, either version 3 of the License,
18
// or (at your option) any later version.
19
//
20
// OpenZWave is distributed in the hope that it will be useful,
21
// but WITHOUT ANY WARRANTY; without even the implied warranty of
22
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
// GNU Lesser General Public License for more details.
24
//
25
// You should have received a copy of the GNU Lesser General Public License
26
// along with OpenZWave. If not, see <http://www.gnu.org/licenses/>.
27
//
28
//-----------------------------------------------------------------------------
29
#ifndef _WaitImpl_H
30
#define _WaitImpl_H
31
32
#include <windows.h>
33
#include <list>
34
#include "
Defs.h
"
35
#include "
platform/Ref.h
"
36
#include "
platform/Wait.h
"
37
38
namespace
OpenZWave
39
{
42
class
WaitImpl
43
{
44
private
:
45
friend
class
Wait
;
46
47
WaitImpl
(
Wait
* _owner );
48
virtual
~
WaitImpl
();
49
50
void
AddWatcher(
Wait::pfnWaitNotification_t
_callback,
void
* _context );
51
bool
RemoveWatcher(
Wait::pfnWaitNotification_t
_callback,
void
* _context );
52
void
Notify();
53
54
static
int32
Multiple(
Wait
** _objects,
uint32
_numObjects,
int32
_timeout = -1 );
55
56
WaitImpl
(
Wait
const
& );
// prevent copy
57
WaitImpl
& operator = (
WaitImpl
const
& );
// prevent assignment
58
59
struct
Watcher
60
{
61
Wait::pfnWaitNotification_t
m_callback;
62
void
* m_context;
63
};
64
65
list<Watcher> m_watchers;
66
Wait
* m_owner;
67
CRITICAL_SECTION m_criticalSection;
68
};
69
70
}
// namespace OpenZWave
71
72
#endif //_WaitImpl_H
73
uint32
unsigned int uint32
Definition:
Defs.h:69
OpenZWave::WaitImpl
Windows specific implementation of Wait objects.
Definition:
WaitImpl.h:42
OpenZWave::Wait::pfnWaitNotification_t
void(* pfnWaitNotification_t)(void *_context)
Definition:
Wait.h:53
int32
signed int int32
Definition:
Defs.h:68
Wait.h
OpenZWave::Wait
Platform-independent definition of Wait objects.
Definition:
Wait.h:41
Ref.h
Defs.h
OpenZWave
Definition:
Bitfield.h:34
Generated on Thu Feb 13 2020 23:40:54 for OpenZWave Library by
1.8.17