Remove the first `size` elements from the queue. Raises an error if the requested removal size is larger than the entire queue.
(self, size)
| 83 | return buffer |
| 84 | |
| 85 | def pop_front(self, size): |
| 86 | """ |
| 87 | Remove the first `size` elements from the queue. |
| 88 | Raises an error if the requested removal size is larger than the entire queue. |
| 89 | """ |
| 90 | if size > self.size: |
| 91 | raise EfficientCollectionQueue.SizeUnderflow(size, self.size) |
| 92 | while size > 0: |
| 93 | buffer = self.buffers[0] |
| 94 | to_remove = min(size, len(buffer)) |
| 95 | buffer = buffer[to_remove:] |
| 96 | if buffer: |
| 97 | self.buffers[0] = buffer |
| 98 | else: |
| 99 | del self.buffers[0] |
| 100 | size -= to_remove |
| 101 | self.size -= to_remove |
| 102 | |
| 103 | def push_back(self, data): |
| 104 | """ |
no outgoing calls