| Index: cc/debug/ring_buffer.h
|
| diff --git a/cc/debug/ring_buffer.h b/cc/debug/ring_buffer.h
|
| deleted file mode 100644
|
| index f9a6749e11622b0cd5a29ff92f69a962c5b762e0..0000000000000000000000000000000000000000
|
| --- a/cc/debug/ring_buffer.h
|
| +++ /dev/null
|
| @@ -1,120 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CC_DEBUG_RING_BUFFER_H_
|
| -#define CC_DEBUG_RING_BUFFER_H_
|
| -
|
| -#include "base/logging.h"
|
| -
|
| -namespace cc {
|
| -
|
| -template<typename T, size_t kSize>
|
| -class RingBuffer {
|
| - public:
|
| - RingBuffer() : current_index_(0) {}
|
| -
|
| - size_t BufferSize() const {
|
| - return kSize;
|
| - }
|
| -
|
| - size_t CurrentIndex() const {
|
| - return current_index_;
|
| - }
|
| -
|
| - // tests if a value was saved to this index
|
| - bool IsFilledIndex(size_t n) const {
|
| - return BufferIndex(n) < current_index_;
|
| - }
|
| -
|
| - // n = 0 returns the oldest value and
|
| - // n = bufferSize() - 1 returns the most recent value.
|
| - const T& ReadBuffer(size_t n) const {
|
| - DCHECK(IsFilledIndex(n));
|
| - return buffer_[BufferIndex(n)];
|
| - }
|
| -
|
| - T* MutableReadBuffer(size_t n) {
|
| - DCHECK(IsFilledIndex(n));
|
| - return &buffer_[BufferIndex(n)];
|
| - }
|
| -
|
| - void SaveToBuffer(const T& value) {
|
| - buffer_[BufferIndex(0)] = value;
|
| - current_index_++;
|
| - }
|
| -
|
| - void Clear() {
|
| - current_index_ = 0;
|
| - }
|
| -
|
| - // Iterator has const access to the RingBuffer it got retrieved from.
|
| - class Iterator {
|
| - public:
|
| - size_t index() const { return index_; }
|
| -
|
| - const T* operator->() const { return &buffer_.ReadBuffer(index_); }
|
| - const T* operator*() const { return &buffer_.ReadBuffer(index_); }
|
| -
|
| - Iterator& operator++() {
|
| - index_++;
|
| - if (index_ == kSize)
|
| - out_of_range_ = true;
|
| - return *this;
|
| - }
|
| -
|
| - Iterator& operator--() {
|
| - if (index_ == 0)
|
| - out_of_range_ = true;
|
| - index_--;
|
| - return *this;
|
| - }
|
| -
|
| - operator bool() const {
|
| - return buffer_.IsFilledIndex(index_) && !out_of_range_;
|
| - }
|
| -
|
| - private:
|
| - Iterator(const RingBuffer<T, kSize>& buffer, size_t index)
|
| - : buffer_(buffer),
|
| - index_(index),
|
| - out_of_range_(false) {
|
| - }
|
| -
|
| - const RingBuffer<T, kSize>& buffer_;
|
| - size_t index_;
|
| - bool out_of_range_;
|
| -
|
| - friend class RingBuffer<T, kSize>;
|
| - };
|
| -
|
| - // Returns an Iterator pointing to the oldest value in the buffer.
|
| - // Example usage (iterate from oldest to newest value):
|
| - // for (RingBuffer<T, kSize>::Iterator it = ring_buffer.Begin(); it; ++it) {}
|
| - Iterator Begin() const {
|
| - if (current_index_ < kSize)
|
| - return Iterator(*this, kSize - current_index_);
|
| - return Iterator(*this, 0);
|
| - }
|
| -
|
| - // Returns an Iterator pointing to the newest value in the buffer.
|
| - // Example usage (iterate backwards from newest to oldest value):
|
| - // for (RingBuffer<T, kSize>::Iterator it = ring_buffer.End(); it; --it) {}
|
| - Iterator End() const {
|
| - return Iterator(*this, kSize - 1);
|
| - }
|
| -
|
| - private:
|
| - inline size_t BufferIndex(size_t n) const {
|
| - return (current_index_ + n) % kSize;
|
| - }
|
| -
|
| - T buffer_[kSize];
|
| - size_t current_index_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(RingBuffer);
|
| -};
|
| -
|
| -} // namespace cc
|
| -
|
| -#endif // CC_DEBUG_RING_BUFFER_H_
|
|
|