26#ifndef MYSQL_HARNESS_UTILITY_CONTAINER_CYCLE_BUFFER_H_
27#define MYSQL_HARNESS_UTILITY_CONTAINER_CYCLE_BUFFER_H_
37template <u
int32_t buffer_size,
typename Container>
71 void try_resize(std::array<value_type, buffer_size> &) {}
79 template <
typename Pos = Position,
typename Buffer =
CycleBuffer,
155 template <
typename V>
158 *e = std::forward<V>(v);
199template <
typename Type, u
int32_t buffer_size>
201 :
public CycleBuffer<buffer_size, std::array<Type, buffer_size>> {};
Definition: cyclic_buffer.h:201
Definition: cyclic_buffer.h:57
Cconst_interator it_
Definition: cyclic_buffer.h:63
Const_position(const Position &p)
Definition: cyclic_buffer.h:61
uint32_t flips_
Definition: cyclic_buffer.h:64
Const_position(const Const_position &p)
Definition: cyclic_buffer.h:60
Const_position()
Definition: cyclic_buffer.h:59
bool operator==(const Const_position &other) const
Definition: cyclic_buffer.h:66
Definition: cyclic_buffer.h:81
Iterator & operator++()
Definition: cyclic_buffer.h:92
Pos position_
Definition: cyclic_buffer.h:132
long difference_type
Definition: cyclic_buffer.h:85
bool operator==(const Iterator &other) const
Definition: cyclic_buffer.h:123
Iterator operator--(int)
Definition: cyclic_buffer.h:117
Cpointer pointer
Definition: cyclic_buffer.h:86
Reference operator*() const
Definition: cyclic_buffer.h:129
Iterator operator++(int)
Definition: cyclic_buffer.h:112
Creference reference
Definition: cyclic_buffer.h:87
Buffer * buffer_
Definition: cyclic_buffer.h:133
CycleBuffer::value_type value_type
Definition: cyclic_buffer.h:84
Iterator(Pos position, Buffer *buffer)
Definition: cyclic_buffer.h:89
bool operator!=(Iterator other) const
Definition: cyclic_buffer.h:127
std::bidirectional_iterator_tag iterator_category
Definition: cyclic_buffer.h:83
Iterator & operator--()
Definition: cyclic_buffer.h:101
Definition: cyclic_buffer.h:47
Cinterator it_
Definition: cyclic_buffer.h:49
bool operator==(const Position &other) const
Definition: cyclic_buffer.h:52
uint32_t flips_
Definition: cyclic_buffer.h:50
Definition: cyclic_buffer.h:38
iterator begin()
Definition: cyclic_buffer.h:149
void try_resize(std::array< value_type, buffer_size > &)
Definition: cyclic_buffer.h:71
const_iterator begin() const
Definition: cyclic_buffer.h:152
void push_back(V &&v)
Definition: cyclic_buffer.h:156
CycleBuffer()
Definition: cyclic_buffer.h:141
value_type & front()
Definition: cyclic_buffer.h:172
uint32_t size() const
Definition: cyclic_buffer.h:168
void pop_back()
Definition: cyclic_buffer.h:184
Iterator< Position > iterator
Definition: cyclic_buffer.h:136
value_type & back()
Definition: cyclic_buffer.h:174
void try_resize(C &c)
Definition: cyclic_buffer.h:74
Container container_
Definition: cyclic_buffer.h:193
typename Container::reference Creference
Definition: cyclic_buffer.h:43
Container & container()
Definition: cyclic_buffer.h:147
uint32_t elements_
Definition: cyclic_buffer.h:194
Position begin_
Definition: cyclic_buffer.h:195
typename Container::const_iterator Cconst_interator
Definition: cyclic_buffer.h:42
typename Container::pointer Cpointer
Definition: cyclic_buffer.h:41
typename Container::value_type value_type
Definition: cyclic_buffer.h:45
typename Container::iterator Cinterator
Definition: cyclic_buffer.h:40
iterator end()
Definition: cyclic_buffer.h:150
bool empty() const
Definition: cyclic_buffer.h:170
Position end_
Definition: cyclic_buffer.h:196
Iterator< Const_position, const CycleBuffer, Cconst_reference > const_iterator
Definition: cyclic_buffer.h:138
typename Container::const_reference Cconst_reference
Definition: cyclic_buffer.h:44
const_iterator end() const
Definition: cyclic_buffer.h:153
void pop_front()
Definition: cyclic_buffer.h:176
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