base: Remove begin() and end() from CircleBuf.

These functions return iterators which are inconsistent with the usage
model for this type. It should be accessed using the peek, push, and pop
methods and not iterators. If you need a class with iterators which is
oriented around accessing individual elements at a time, the
CircularQueue type is likely a better choice.

Change-Id: I9f37eab12e490b63d870d378a91f601dad353f25
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/38998
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Gabe Black
2021-01-12 01:02:49 -08:00
parent 43114ad1dd
commit a7f3c5aad2

View File

@@ -62,8 +62,6 @@ class CircleBuf
public:
using value_type = T;
using iterator = typename std::vector<T>::iterator;
using const_iterator = typename std::vector<T>::const_iterator;
explicit CircleBuf(size_t size) : buffer(size), maxSize(size) {}
@@ -71,15 +69,6 @@ class CircleBuf
size_t size() const { return used; }
size_t capacity() const { return maxSize; }
iterator begin() { return buffer.begin() + start % maxSize; }
const_iterator begin() const { return buffer.begin() + start % maxSize; }
iterator end() { return buffer.begin() + (start + used) % maxSize; }
const_iterator
end() const
{
return buffer.begin() + (start + used) % maxSize;
}
/**
* Throw away any data in the buffer.
*/