arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
Concurrency
SynchronizedQueue.h
Go to the documentation of this file.
1
#pragma once
2
#include "
AudioTools/CoreAudio/AudioBasic/Collections/List.h
"
3
4
namespace
audio_tools
{
5
15
template
<
class
T,
class
TMutex>
16
class
SynchronizedQueue
{
17
public
:
18
SynchronizedQueue
() =
default
;
19
20
bool
enqueue
(
T
& data) {
21
LockGuard
guard
{
mutex
};;
22
return
l
.push_front(data);
23
}
24
25
bool
peek
(
T
& data) {
26
LockGuard
guard
{
mutex
};;
27
if
(
l
.end()->prior ==
nullptr
)
return
false
;
28
data = *(
l
.end()->prior);
29
return
true
;
30
}
31
32
bool
dequeue
(
T
& data) {
33
LockGuard
guard
{
mutex
};;
34
return
l
.pop_back(data);
35
}
36
37
size_t
size
() {
38
LockGuard
guard
{
mutex
};;
39
return
l
.size();
40
}
41
42
bool
clear
() {
43
LockGuard
guard
{
mutex
};;
44
return
l
.clear();
45
}
46
47
bool
empty
() {
48
LockGuard
guard
{
mutex
};;
49
return
l
.empty();
50
}
51
52
void
setAllocator
(
Allocator
& allocator) {
l
.setAllocator(allocator); }
53
54
protected
:
55
List<T>
l
;
56
TMutex
mutex
;
57
};
58
59
}
// namespace audio_tools
List.h
audio_tools::Allocator
Memory allocateator which uses malloc.
Definition
Allocator.h:23
audio_tools::List
Double linked list.
Definition
List.h:18
audio_tools::LockGuard
RAII implementaion using a Mutex: Only a few microcontrollers provide lock guards,...
Definition
LockGuard.h:17
audio_tools::SynchronizedQueue
FIFO Queue which is based on a List that is thread save.
Definition
SynchronizedQueue.h:16
audio_tools::SynchronizedQueue::size
size_t size()
Definition
SynchronizedQueue.h:37
audio_tools::SynchronizedQueue::empty
bool empty()
Definition
SynchronizedQueue.h:47
audio_tools::SynchronizedQueue::peek
bool peek(T &data)
Definition
SynchronizedQueue.h:25
audio_tools::SynchronizedQueue::SynchronizedQueue
SynchronizedQueue()=default
audio_tools::SynchronizedQueue::dequeue
bool dequeue(T &data)
Definition
SynchronizedQueue.h:32
audio_tools::SynchronizedQueue::clear
bool clear()
Definition
SynchronizedQueue.h:42
audio_tools::SynchronizedQueue::mutex
TMutex mutex
Definition
SynchronizedQueue.h:56
audio_tools::SynchronizedQueue::enqueue
bool enqueue(T &data)
Definition
SynchronizedQueue.h:20
audio_tools::SynchronizedQueue::setAllocator
void setAllocator(Allocator &allocator)
Definition
SynchronizedQueue.h:52
audio_tools::SynchronizedQueue::l
List< T > l
Definition
SynchronizedQueue.h:55
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
AudioCodecsBase.h:10
audio_tools::writeData
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition
AudioTypes.h:512
Generated by
1.9.8