26#ifndef ROUTER_SRC_REST_MRS_SRC_HELPER_CONTAINER_CYCLIC_BUFFER_H_
27#define ROUTER_SRC_REST_MRS_SRC_HELPER_CONTAINER_CYCLIC_BUFFER_H_
35template <u
int32_t buffer_size,
typename Container>
69 void try_resize(std::array<value_type, buffer_size> &) {}
77 template <
typename Pos = Position,
typename Buffer =
CycleBuffer,
153 template <
typename V>
156 *e = std::forward<V>(v);
197template <
typename Type, u
int32_t buffer_size>
199 :
public CycleBuffer<buffer_size, std::array<Type, buffer_size>> {};
Definition: cyclic_buffer.h:199
Definition: cyclic_buffer.h:55
uint32_t flips_
Definition: cyclic_buffer.h:62
Const_position(const Const_position &p)
Definition: cyclic_buffer.h:58
Const_position(const Position &p)
Definition: cyclic_buffer.h:59
Cconst_interator it_
Definition: cyclic_buffer.h:61
Const_position()
Definition: cyclic_buffer.h:57
bool operator==(const Const_position &other) const
Definition: cyclic_buffer.h:64
Definition: cyclic_buffer.h:79
Iterator & operator++()
Definition: cyclic_buffer.h:90
Pos position_
Definition: cyclic_buffer.h:130
Iterator operator++(int)
Definition: cyclic_buffer.h:110
Buffer * buffer_
Definition: cyclic_buffer.h:131
Cpointer pointer
Definition: cyclic_buffer.h:84
bool operator==(const Iterator &other) const
Definition: cyclic_buffer.h:121
bool operator!=(Iterator other) const
Definition: cyclic_buffer.h:125
std::bidirectional_iterator_tag iterator_category
Definition: cyclic_buffer.h:81
Iterator operator--(int)
Definition: cyclic_buffer.h:115
Reference operator*() const
Definition: cyclic_buffer.h:127
long difference_type
Definition: cyclic_buffer.h:83
Iterator & operator--()
Definition: cyclic_buffer.h:99
Creference reference
Definition: cyclic_buffer.h:85
Iterator(Pos position, Buffer *buffer)
Definition: cyclic_buffer.h:87
CycleBuffer::value_type value_type
Definition: cyclic_buffer.h:82
Definition: cyclic_buffer.h:45
uint32_t flips_
Definition: cyclic_buffer.h:48
Cinterator it_
Definition: cyclic_buffer.h:47
bool operator==(const Position &other) const
Definition: cyclic_buffer.h:50
Definition: cyclic_buffer.h:36
value_type & back()
Definition: cyclic_buffer.h:172
typename Container::pointer Cpointer
Definition: cyclic_buffer.h:39
void try_resize(C &c)
Definition: cyclic_buffer.h:72
bool empty() const
Definition: cyclic_buffer.h:168
typename Container::const_reference Cconst_reference
Definition: cyclic_buffer.h:42
uint32_t elements_
Definition: cyclic_buffer.h:192
iterator begin()
Definition: cyclic_buffer.h:147
typename Container::value_type value_type
Definition: cyclic_buffer.h:43
const_iterator begin() const
Definition: cyclic_buffer.h:150
void pop_back()
Definition: cyclic_buffer.h:182
Iterator< Const_position, const CycleBuffer, Cconst_reference > const_iterator
Definition: cyclic_buffer.h:136
Container container_
Definition: cyclic_buffer.h:191
void push_back(V &&v)
Definition: cyclic_buffer.h:154
Iterator< Position > iterator
Definition: cyclic_buffer.h:134
typename Container::reference Creference
Definition: cyclic_buffer.h:41
const_iterator end() const
Definition: cyclic_buffer.h:151
Position end_
Definition: cyclic_buffer.h:194
void pop_front()
Definition: cyclic_buffer.h:174
value_type & front()
Definition: cyclic_buffer.h:170
typename Container::const_iterator Cconst_interator
Definition: cyclic_buffer.h:40
Container & container()
Definition: cyclic_buffer.h:145
iterator end()
Definition: cyclic_buffer.h:148
Position begin_
Definition: cyclic_buffer.h:193
void try_resize(std::array< value_type, buffer_size > &)
Definition: cyclic_buffer.h:69
CycleBuffer()
Definition: cyclic_buffer.h:139
uint32_t size() const
Definition: cyclic_buffer.h:166
typename Container::iterator Cinterator
Definition: cyclic_buffer.h:38
const char * p
Definition: ctype-mb.cc:1227
uint16_t value_type
Definition: vt100.h:184
Definition: atomics_array.h:39
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
size_t buffer_size(const ConstBufferSequence &buffers) noexcept
Definition: buffer.h:313