| 193 | } |
| 194 | |
| 195 | void BufferedConnection::advance(int count) { |
| 196 | ASSERT(count <= self->total_bytes.get()); |
| 197 | |
| 198 | while (count) { |
| 199 | int to_remove = std::min(count, BCBlock::DATA_SIZE - self->buffer_begin_offset); |
| 200 | |
| 201 | self->desired_bytes.set(self->desired_bytes.get() - to_remove); |
| 202 | self->total_bytes.set(self->total_bytes.get() - to_remove); |
| 203 | |
| 204 | self->buffer_begin_offset += to_remove; |
| 205 | if (self->buffer_begin_offset == BCBlock::DATA_SIZE) { |
| 206 | self->deadlist.push_back(self->buffer.front()); |
| 207 | self->buffer.pop_front(); |
| 208 | self->buffer_begin_offset = 0; |
| 209 | } |
| 210 | |
| 211 | count -= to_remove; |
| 212 | } |
| 213 | } |
| 214 | |
| 215 | void BufferedConnection::pop(int count) { |
| 216 | while (count) { |
no test coverage detected