in algebird-util/src/main/scala/com/twitter/algebird/util/summer/HeavyHittersCachingSummer.scala [179:239]
def apply[Key, Value](
flushFrequency: FlushFrequency,
softMemoryFlush: MemoryFlushPercent,
memoryIncr: Incrementor,
timeoutIncr: Incrementor,
tuplesOut: Incrementor,
insertOp: Incrementor,
sizeIncr: Incrementor,
backingSummer: AsyncSummer[(Key, Value), Iterable[(Key, Value)]]
): HeavyHittersCachingSummer[Key, Value] =
new HeavyHittersCachingSummer[Key, Value](
DEFAULT_HH_PERCENT,
DEFAULT_UPDATE_FREQUENCY,
DEFAULT_ROLL_OVER_FREQUENCY,
flushFrequency,
softMemoryFlush,
memoryIncr,
timeoutIncr,
insertOp,
backingSummer
)
def apply[Key, Value](
hhPct: HeavyHittersPercent,
updateFreq: UpdateFrequency,
roFreq: RollOverFrequency,
flushFrequency: FlushFrequency,
softMemoryFlush: MemoryFlushPercent,
memoryIncr: Incrementor,
timeoutIncr: Incrementor,
tuplesOut: Incrementor,
insertOp: Incrementor,
sizeIncr: Incrementor,
backingSummer: AsyncSummer[(Key, Value), Iterable[(Key, Value)]]
): HeavyHittersCachingSummer[Key, Value] =
new HeavyHittersCachingSummer[Key, Value](
hhPct,
updateFreq,
roFreq,
flushFrequency,
softMemoryFlush,
memoryIncr,
timeoutIncr,
insertOp,
backingSummer
)
}
class HeavyHittersCachingSummer[K, V](
hhPct: HeavyHittersPercent,
updateFreq: UpdateFrequency,
roFreq: RollOverFrequency,
override val flushFrequency: FlushFrequency,
override val softMemoryFlush: MemoryFlushPercent,
override val memoryIncr: Incrementor,
override val timeoutIncr: Incrementor,
insertOp: Incrementor,
backingSummer: AsyncSummer[(K, V), Iterable[(K, V)]]
) extends AsyncSummer[(K, V), Iterable[(K, V)]]
with WithFlushConditions[(K, V), Iterable[(K, V)]] {