com.google.common.cache

## Interface AbstractCache.StatsCounter

- All Known Implementing Classes:
    AbstractCache.SimpleStatsCounter
  Enclosing class:
    AbstractCache<K,V>

      public static interface AbstractCache.StatsCounter

  Accumulates statistics during the operation of a `Cache` for presentation by `Cache.stats()`. This is solely intended for consumption by `Cache` implementors.
  Since:
    10.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `recordEviction()` Records the eviction of an entry from the cache.
    `void` | `recordHits(int count)` Records cache hits.
    `void` | `recordLoadException(long loadTime)` Records the failed load of a new entry.
    `void` | `recordLoadSuccess(long loadTime)` Records the successful load of a new entry.
    `void` | `recordMisses(int count)` Records cache misses.
    `CacheStats` | `snapshot()` Returns a snapshot of this counter's values.

- - ### Method Detail

    - #### recordHits

          void recordHits(int count)

      Records cache hits. This should be called when a cache request returns a cached value.
      Parameters:
        `count` - the number of hits to record
      Since:
        11.0

    - #### recordMisses

          void recordMisses(int count)

      Records cache misses. This should be called when a cache request returns a value that was not found in the cache. This method should be called by the loading thread, as well as by threads blocking on the load. Multiple concurrent calls to `Cache` lookup methods with the same key on an absent value should result in a single call to either `recordLoadSuccess` or `recordLoadException` and multiple calls to this method, despite all being served by the results of a single load operation.
      Parameters:
        `count` - the number of misses to record
      Since:
        11.0

    - #### recordLoadSuccess

          void recordLoadSuccess(long loadTime)

      Records the successful load of a new entry. This should be called when a cache request causes an entry to be loaded, and the loading completes successfully. In contrast to `recordMisses(int)`, this method should only be called by the loading thread.
      Parameters:
        `loadTime` - the number of nanoseconds the cache spent computing or retrieving the new value

    - #### recordLoadException

          void recordLoadException(long loadTime)

      Records the failed load of a new entry. This should be called when a cache request causes an entry to be loaded, but an exception is thrown while loading the entry. In contrast to `recordMisses(int)`, this method should only be called by the loading thread.
      Parameters:
        `loadTime` - the number of nanoseconds the cache spent computing or retrieving the new value prior to an exception being thrown

    - #### recordEviction

          void recordEviction()

      Records the eviction of an entry from the cache. This should only been called when an entry is evicted due to the cache's eviction strategy, and not as a result of manual invalidations.

    - #### snapshot

          CacheStats snapshot()

      Returns a snapshot of this counter's values. Note that this may be an inconsistent view, as it may be interleaved with update operations.