1#ifndef FASTCAT_RING_BUFFER_H_
2#define FASTCAT_RING_BUFFER_H_
14 std::vector<T> buffer_;
16 size_t num_received_ = 0;
20 RingBuffer(
size_t buffer_size = 10) { buffer_.resize(buffer_size); }
24 return buffer_[index_ % buffer_.size()];
29 if (delay > buffer_.size()) {
30 throw std::runtime_error(
"Delay is greater than allocated buffer size");
33 return buffer_[(index_ - delay) % buffer_.size()];
38 buffer_[(++index_) % buffer_.size()] = value;
53 return buffer_.size();
Definition ring_buffer.h:13
size_t size()
Definition ring_buffer.h:52
T load(size_t delay)
Definition ring_buffer.h:27
size_t get_num_received()
Definition ring_buffer.h:47
T load(void)
Definition ring_buffer.h:22
RingBuffer(size_t buffer_size=10)
Definition ring_buffer.h:20
void store(const T &value)
Definition ring_buffer.h:36
void clear()
Definition ring_buffer.h:42
Definition device_base.h:18