FreeRTOS C++ Wrappers
1.6.0
C++ interface to FreeRTOS
include
condition_variable.hpp
Go to the documentation of this file.
1
/****************************************************************************
2
*
3
* Copyright (c) 2017, Michael Becker (michael.f.becker@gmail.com)
4
*
5
* This file is part of the FreeRTOS Add-ons project.
6
*
7
* Source Code:
8
* https://github.com/michaelbecker/freertos-addons
9
*
10
* Project Page:
11
* http://michaelbecker.github.io/freertos-addons/
12
*
13
* On-line Documentation:
14
* http://michaelbecker.github.io/freertos-addons/docs/html/index.html
15
*
16
* Permission is hereby granted, free of charge, to any person obtaining a
17
* copy of this software and associated documentation files
18
* (the "Software"), to deal in the Software without restriction, including
19
* without limitation the rights to use, copy, modify, merge, publish,
20
* distribute, sublicense, and/or sell copies of the Software, and to
21
* permit persons to whom the Software is furnished to do so,subject to the
22
* following conditions:
23
*
24
* + The above copyright notice and this permission notice shall be included
25
* in all copies or substantial portions of the Software.
26
* + Credit is appreciated, but not required, if you find this project
27
* useful enough to include in your application, product, device, etc.
28
*
29
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
30
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
31
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
32
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
33
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
34
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
35
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
36
*
37
***************************************************************************/
38
39
40
#ifndef CONDITION_VARIABLE_HPP_
41
#define CONDITION_VARIABLE_HPP_
42
43
#include <list>
44
#include "
mutex.hpp
"
45
46
52
#ifdef CPP_FREERTOS_CONDITION_VARIABLES
53
54
55
namespace
cpp_freertos
{
56
57
//
58
// Forward declaration. We need to prevent a circular dependency
59
// between the Thread class and the ConditionVariable class.
60
//
61
class
Thread
;
62
63
74
class
ConditionVariable
{
75
77
//
78
// Public API
79
//
81
public
:
82
86
ConditionVariable
();
87
92
void
Signal
();
93
97
void
Broadcast
();
98
99
101
//
102
// Private API
103
// The internals of this wrapper class.
104
//
106
private
:
107
111
MutexStandard
Lock
;
112
116
std::list<Thread *>
WaitList
;
117
122
void
AddToWaitList
(
Thread
*thread);
123
130
friend
class
Thread
;
131
};
132
133
134
}
135
136
#endif
137
138
#endif
139
cpp_freertos::ConditionVariable::AddToWaitList
void AddToWaitList(Thread *thread)
Definition:
ccondition_variable.cpp:58
cpp_freertos::Thread
Definition:
thread.hpp:77
cpp_freertos::ConditionVariable::Broadcast
void Broadcast()
Definition:
ccondition_variable.cpp:98
mutex.hpp
cpp_freertos::ConditionVariable::WaitList
std::list< Thread * > WaitList
Definition:
condition_variable.hpp:116
cpp_freertos
Definition:
condition_variable.hpp:55
cpp_freertos::ConditionVariable::Lock
MutexStandard Lock
Definition:
condition_variable.hpp:111
cpp_freertos::MutexStandard
Definition:
mutex.hpp:169
cpp_freertos::ConditionVariable::ConditionVariable
ConditionVariable()
Definition:
ccondition_variable.cpp:52
cpp_freertos::ConditionVariable
Definition:
condition_variable.hpp:74
cpp_freertos::ConditionVariable::Signal
void Signal()
Definition:
ccondition_variable.cpp:77
Generated on Sat Oct 20 2018 15:06:50 for FreeRTOS C++ Wrappers by
1.8.13