View Javadoc

1   package org.modeshape.graph.connector.path.cache;
2   
3   import java.util.concurrent.atomic.AtomicLong;
4   import net.jcip.annotations.ThreadSafe;
5   
6   /**
7    * Default, thread-safe implementation of {@link CacheStatistics} that uses {@link AtomicLong AtomicLongs} as counters for the
8    * statistics.
9    */
10  @ThreadSafe
11  public final class DefaultCacheStatistics implements CacheStatistics {
12      private final AtomicLong writes = new AtomicLong(0);
13      private final AtomicLong hits = new AtomicLong(0);
14      private final AtomicLong misses = new AtomicLong(0);
15      private final AtomicLong expirations = new AtomicLong(0);
16  
17      public long getWrites() {
18          return writes.get();
19      }
20  
21      public long getHits() {
22          return hits.get();
23      }
24  
25      public long getMisses() {
26          return misses.get();
27      }
28  
29      public long getExpirations() {
30          return expirations.get();
31      }
32  
33      public long incrementWrites() {
34          return writes.getAndIncrement();
35      }
36  
37      public long incrementHits() {
38          return hits.getAndIncrement();
39      }
40  
41      public long incrementMisses() {
42          return misses.getAndIncrement();
43      }
44  
45      public long incrementExpirations() {
46          return expirations.getAndIncrement();
47      }
48  }