AbstractCache.SimpleStatsCounter
Date: 2016-05-24

com.google.common.cache

## Class AbstractCache.SimpleStatsCounter

- java.lang.Object
- - com.google.common.cache.AbstractCache.SimpleStatsCounter

- All Implemented Interfaces:
    AbstractCache.StatsCounter
  Enclosing class:
    AbstractCache<K,V>

      public static final class AbstractCache.SimpleStatsCounter
      extends java.lang.Object
      implements AbstractCache.StatsCounter

  A thread-safe `AbstractCache.StatsCounter` implementation for use by `Cache` implementors.
  Since:
    10.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractCache.SimpleStatsCounter()` Constructs an instance with all counts initialized to zero.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `incrementBy(AbstractCache.StatsCounter other)` Increments all counters by the values in `other`.
    `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AbstractCache.SimpleStatsCounter

          public AbstractCache.SimpleStatsCounter()

      Constructs an instance with all counts initialized to zero.

  - ### Method Detail

    - #### recordHits

          public void recordHits(int count)

      Description copied from interface: `AbstractCache.StatsCounter`
      Records cache hits. This should be called when a cache request returns a cached value.
      Specified by:
        `recordHits` in interface `AbstractCache.StatsCounter`
      Parameters:
        `count` - the number of hits to record
      Since:
        11.0

    - #### recordMisses

          public void recordMisses(int count)

      Description copied from interface: `AbstractCache.StatsCounter`
      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.
      Specified by:
        `recordMisses` in interface `AbstractCache.StatsCounter`
      Parameters:
        `count` - the number of misses to record
      Since:
        11.0

    - #### recordLoadSuccess

          public void recordLoadSuccess(long loadTime)

      Description copied from interface: `AbstractCache.StatsCounter`
      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 `AbstractCache.StatsCounter.recordMisses(int)`, this method should only be called by the loading thread.
      Specified by:
        `recordLoadSuccess` in interface `AbstractCache.StatsCounter`
      Parameters:
        `loadTime` - the number of nanoseconds the cache spent computing or retrieving the new value

    - #### recordLoadException

          public void recordLoadException(long loadTime)

      Description copied from interface: `AbstractCache.StatsCounter`
      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 `AbstractCache.StatsCounter.recordMisses(int)`, this method should only be called by the loading thread.
      Specified by:
        `recordLoadException` in interface `AbstractCache.StatsCounter`
      Parameters:
        `loadTime` - the number of nanoseconds the cache spent computing or retrieving the new value prior to an exception being thrown

    - #### recordEviction

          public void recordEviction()

      Description copied from interface: `AbstractCache.StatsCounter`
      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.
      Specified by:
        `recordEviction` in interface `AbstractCache.StatsCounter`

    - #### snapshot

          public CacheStats snapshot()

      Description copied from interface: `AbstractCache.StatsCounter`
      Returns a snapshot of this counter's values. Note that this may be an inconsistent view, as it may be interleaved with update operations.
      Specified by:
        `snapshot` in interface `AbstractCache.StatsCounter`

    - #### incrementBy

          public void incrementBy(AbstractCache.StatsCounter other)

      Increments all counters by the values in `other`.