Lines Matching refs:tail
66 size_type tail; member in CircularBuffer
73 :head(0), tail(0), capacity(_capacity), data(_data) {} in CircularBuffer()
86 head = tail = 0; in Clear()
94 return head == tail; in empty()
98 return Next(tail) == head; in IsFull()
105 return head <= tail in GetSize()
106 ? tail - head in GetSize()
107 : capacity - head + tail; in GetSize()
116 return (head <= tail in GetSpace()
117 ? capacity - tail + head in GetSpace()
118 : head - tail) in GetSpace()
128 assert(tail < capacity); in Write()
130 size_type end = tail < head in Write()
137 return Range(data + tail, end - tail); in Write()
146 assert(tail < capacity); in Append()
148 assert(tail + n <= capacity); in Append()
149 assert(head <= tail || tail + n < head); in Append()
151 tail += n; in Append()
153 if (tail == capacity) { in Append()
155 tail = 0; in Append()
165 assert(tail < capacity); in Read()
167 return Range(data + head, (tail < head ? capacity : tail) - head); in Read()
175 assert(tail < capacity); in Consume()
178 assert(tail < head || head + n <= tail); in Consume()