13template <
typename E,
int bufferCapacity = 4>
23 void put(
const E &entry);
44 uint8_t numOverflows = 0;
46 E buffer[bufferCapacity];
50template <
typename E,
int bufferCapacity>
52 : capacity(bufferCapacity)
55template <
typename E,
int bufferCapacity>
61template <
typename E,
int bufferCapacity>
64 return full || (head != tail);
69template <
typename E,
int bufferCapacity>
77 tail = (tail + 1) % capacity;
81 head = (head + 1) % capacity;
94template <
typename E,
int bufferCapacity>
97 uint8_t oldTail = tail;
99 tail = (tail + 1) % capacity;
102 return buffer[oldTail];
106template <
typename E,
int bufferCapacity>
112 return &buffer[tail];
121template <
typename E,
int bufferCapacity>
130template <
typename E,
int bufferCapacity>
133 int8_t size = capacity;
CircularBuffer()
Definition CircularBuffer.h:51
bool available() const
if buffer has one or more stored items
Definition CircularBuffer.h:62
void put(const E &entry)
Definition CircularBuffer.h:70
E * peek()
peek at the next item in the buffer without removing it
Definition CircularBuffer.h:107
const E & pop()
retrieve the next item from the buffer, requires that available() is checked first.
Definition CircularBuffer.h:95
unsigned int getNumberOfGets() const
Definition CircularBuffer.h:29
unsigned int getHighWaterMark() const
Definition CircularBuffer.h:31
unsigned int getOverflows() const
Definition CircularBuffer.h:30
unsigned int getNumberOfPuts() const
Definition CircularBuffer.h:28
~CircularBuffer()
Definition CircularBuffer.h:56
uint8_t bufUse() const
recalculate number of items in the buffer
Definition CircularBuffer.h:131
void clear()
clear all items
Definition CircularBuffer.h:122
Definition AbstractEventTeachingService.cpp:13