diff options
| author | 2023-04-05 16:52:27 -0700 | |
|---|---|---|
| committer | 2023-04-11 00:02:54 +0000 | |
| commit | 18838bcf7d0b61a31d039615287fb3a5ca189231 (patch) | |
| tree | 9496b30f5884f998fb8e1dd4aa458a02f5fdc6e7 | |
| parent | 3704cb3be5100dd9f8ad85f4b7ac6d3b0459d10f (diff) | |
Add `front` and `back` methods to RingBuffer
Test: Corresponding added RingBuffer tests pass
(`atest libinput_tests`)
Bug: 268245099
Change-Id: If330940e67e70d809748b2aaa6156bed835c6c9d
| -rw-r--r-- | include/input/RingBuffer.h | 5 | ||||
| -rw-r--r-- | libs/input/tests/RingBuffer_test.cpp | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/include/input/RingBuffer.h b/include/input/RingBuffer.h index 67984b7c80..37fe5afeea 100644 --- a/include/input/RingBuffer.h +++ b/include/input/RingBuffer.h @@ -103,6 +103,11 @@ public: iterator end() { return {*this, mSize}; } const_iterator end() const { return {*this, mSize}; } + reference front() { return mBuffer[mBegin]; } + const_reference front() const { return mBuffer[mBegin]; } + reference back() { return mBuffer[bufferIndex(mSize - 1)]; } + const_reference back() const { return mBuffer[bufferIndex(mSize - 1)]; } + reference operator[](size_type i) { return mBuffer[bufferIndex(i)]; } const_reference operator[](size_type i) const { return mBuffer[bufferIndex(i)]; } diff --git a/libs/input/tests/RingBuffer_test.cpp b/libs/input/tests/RingBuffer_test.cpp index 8a6ef4c21b..a2ef658934 100644 --- a/libs/input/tests/RingBuffer_test.cpp +++ b/libs/input/tests/RingBuffer_test.cpp @@ -118,6 +118,21 @@ TEST(RingBufferTest, Assignment) { EXPECT_EQ(0u, d.capacity()); } +TEST(RingBufferTest, FrontBackAccess) { + RingBuffer<int> buffer(/*capacity=*/2); + buffer.pushBack(1); + EXPECT_EQ(1, buffer.front()); + EXPECT_EQ(1, buffer.back()); + + buffer.pushFront(0); + EXPECT_EQ(0, buffer.front()); + EXPECT_EQ(1, buffer.back()); + + buffer.pushFront(-1); + EXPECT_EQ(-1, buffer.front()); + EXPECT_EQ(0, buffer.back()); +} + TEST(RingBufferTest, Subscripting) { RingBuffer<int> buffer(/*capacity=*/2); buffer.pushBack(1); |