Home | History | Annotate | Download | only in resources
      1 // Copyright 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "cc/resources/memory_history.h"
      6 
      7 #include <limits>
      8 
      9 namespace cc {
     10 
     11 // static
     12 scoped_ptr<MemoryHistory> MemoryHistory::Create() {
     13   return make_scoped_ptr(new MemoryHistory());
     14 }
     15 
     16 MemoryHistory::MemoryHistory() {}
     17 
     18 void MemoryHistory::SaveEntry(const MemoryHistory::Entry& entry) {
     19   ring_buffer_.SaveToBuffer(entry);
     20 }
     21 
     22 void MemoryHistory::GetMinAndMax(size_t* min, size_t* max) const {
     23   *min = std::numeric_limits<size_t>::max();
     24   *max = 0;
     25 
     26   for (RingBufferType::Iterator it = ring_buffer_.Begin(); it; ++it) {
     27     size_t bytes_total = it->bytes_total();
     28 
     29     if (bytes_total < *min)
     30       *min = bytes_total;
     31     if (bytes_total > *max)
     32       *max = bytes_total;
     33   }
     34 
     35   if (*min > *max)
     36     *min = *max;
     37 }
     38 
     39 }  // namespace cc
     40