Package org.terracotta.statistics
Class MemoizingValueStatistic<T extends java.io.Serializable>
- java.lang.Object
-
- org.terracotta.statistics.MemoizingValueStatistic<T>
-
- All Implemented Interfaces:
ValueStatistic<T>
public class MemoizingValueStatistic<T extends java.io.Serializable> extends java.lang.Object implements ValueStatistic<T>
-
-
Field Summary
Fields Modifier and Type Field Description private longdelayNsprivate ValueStatistic<T>delegateprivate java.util.concurrent.atomic.AtomicLongexpirationprivate java.util.concurrent.atomic.AtomicReference<T>memoized
-
Constructor Summary
Constructors Constructor Description MemoizingValueStatistic(long delay, java.util.concurrent.TimeUnit unit, ValueStatistic<T> delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StatisticTypetype()Tvalue()
-
-
-
Field Detail
-
delayNs
private final long delayNs
-
memoized
private final java.util.concurrent.atomic.AtomicReference<T extends java.io.Serializable> memoized
-
expiration
private final java.util.concurrent.atomic.AtomicLong expiration
-
delegate
private final ValueStatistic<T extends java.io.Serializable> delegate
-
-
Constructor Detail
-
MemoizingValueStatistic
public MemoizingValueStatistic(long delay, java.util.concurrent.TimeUnit unit, ValueStatistic<T> delegate)
-
-
Method Detail
-
type
public StatisticType type()
- Specified by:
typein interfaceValueStatistic<T extends java.io.Serializable>- Returns:
- The statistic type
-
value
public T value()
- Specified by:
valuein interfaceValueStatistic<T extends java.io.Serializable>- Returns:
- The current statistic value
-
-