LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/lazy - SkDiscardableMemoryPool.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 2 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2013 Google Inc.
       3             :  *
       4             :  * Use of this source code is governed by a BSD-style license that can be
       5             :  * found in the LICENSE file.
       6             :  */
       7             : 
       8             : #ifndef SkDiscardableMemoryPool_DEFINED
       9             : #define SkDiscardableMemoryPool_DEFINED
      10             : 
      11             : #include "SkDiscardableMemory.h"
      12             : #include "SkMutex.h"
      13             : 
      14             : #ifndef SK_LAZY_CACHE_STATS
      15             :     #ifdef SK_DEBUG
      16             :         #define SK_LAZY_CACHE_STATS 1
      17             :     #else
      18             :         #define SK_LAZY_CACHE_STATS 0
      19             :     #endif
      20             : #endif
      21             : 
      22             : /**
      23             :  *  An implementation of Discardable Memory that manages a fixed-size
      24             :  *  budget of memory.  When the allocated memory exceeds this size,
      25             :  *  unlocked blocks of memory are purged.  If all memory is locked, it
      26             :  *  can exceed the memory-use budget.
      27             :  */
      28           0 : class SkDiscardableMemoryPool : public SkDiscardableMemory::Factory {
      29             : public:
      30           0 :     virtual ~SkDiscardableMemoryPool() { }
      31             : 
      32             :     virtual size_t getRAMUsed() = 0;
      33             :     virtual void setRAMBudget(size_t budget) = 0;
      34             :     virtual size_t getRAMBudget() = 0;
      35             : 
      36             :     /** purges all unlocked DMs */
      37             :     virtual void dumpPool() = 0;
      38             : 
      39             :     #if SK_LAZY_CACHE_STATS
      40             :     /**
      41             :      * These two values are a count of the number of successful and
      42             :      * failed calls to SkDiscardableMemory::lock() for all DMs managed
      43             :      * by this pool.
      44             :      */
      45             :     virtual int getCacheHits() = 0;
      46             :     virtual int getCacheMisses() = 0;
      47             :     virtual void resetCacheHitsAndMisses() = 0;
      48             :     #endif
      49             : 
      50             :     /**
      51             :      *  This non-global pool can be used for unit tests to verify that
      52             :      *  the pool works.
      53             :      *  Without mutex, will be not be thread safe.
      54             :      */
      55             :     static SkDiscardableMemoryPool* Create(
      56             :             size_t size, SkBaseMutex* mutex = nullptr);
      57             : };
      58             : 
      59             : /**
      60             :  *  Returns (and creates if needed) a threadsafe global
      61             :  *  SkDiscardableMemoryPool.
      62             :  */
      63             : SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool();
      64             : 
      65             : #if !defined(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE)
      66             : #define SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE (128 * 1024 * 1024)
      67             : #endif
      68             : 
      69             : #endif  // SkDiscardableMemoryPool_DEFINED

Generated by: LCOV version 1.13