public class AggregatorRateEver extends java.lang.Object implements AggregationMethod
Modifier and Type | Field and Description |
---|---|
protected boolean |
hasLeave |
protected long |
interval |
protected long |
oneSecondTime |
protected java.util.ArrayDeque<java.lang.Long> |
points |
protected TimeProvider |
timeProvider |
Constructor and Description |
---|
AggregatorRateEver(long interval,
long oneSecondTime,
TimeProvider timeProvider)
Ctor.
|
Modifier and Type | Method and Description |
---|---|
static void |
applyEnterCodegen(AggregationMethodFactoryRate forge,
int column,
CodegenMethodNode method,
ExprForgeCodegenSymbol symbols,
ExprForge[] forges,
CodegenClassScope classScope) |
void |
clear()
Clear out the collection.
|
static void |
clearCodegen(int column,
CodegenMethodNode method) |
void |
enter(java.lang.Object object)
Apply the value as entering aggregation (entering window).
|
long |
getInterval() |
long |
getOneSecondTime() |
java.util.ArrayDeque<java.lang.Long> |
getPoints() |
TimeProvider |
getTimeProvider() |
java.lang.Object |
getValue()
Returns the current value held.
|
static void |
getValueCodegen(AggregationMethodFactoryRate forge,
int column,
CodegenMethodNode method) |
boolean |
isHasLeave() |
void |
leave(java.lang.Object object)
Apply the value as leaving aggregation (leaving window).
|
static boolean |
removeFromHead(java.util.ArrayDeque<java.lang.Long> points,
long timestamp,
long interval)
NOTE: Code-generation-invoked method, method name and parameter order matters
|
static void |
rowMemberCodegen(int column,
CodegenCtor ctor,
CodegenMembersColumnized membersColumnized) |
void |
setHasLeave(boolean hasLeave) |
protected final long interval
protected final long oneSecondTime
protected final java.util.ArrayDeque<java.lang.Long> points
protected boolean hasLeave
protected final TimeProvider timeProvider
public AggregatorRateEver(long interval, long oneSecondTime, TimeProvider timeProvider)
interval
- rate intervaltimeProvider
- timeoneSecondTime
- number of ticks for one secondpublic static void rowMemberCodegen(int column, CodegenCtor ctor, CodegenMembersColumnized membersColumnized)
public void enter(java.lang.Object object)
AggregationMethod
The value can be null since 'null' values may be counted as unique separate values.
enter
in interface AggregationMethod
object
- to add to aggregatepublic static void applyEnterCodegen(AggregationMethodFactoryRate forge, int column, CodegenMethodNode method, ExprForgeCodegenSymbol symbols, ExprForge[] forges, CodegenClassScope classScope)
public void leave(java.lang.Object object)
AggregationMethod
The value can be null since 'null' values may be counted as unique separate values.
leave
in interface AggregationMethod
object
- to remove from aggregatepublic void clear()
AggregationMethod
clear
in interface AggregationMethod
public static void clearCodegen(int column, CodegenMethodNode method)
public java.lang.Object getValue()
AggregationMethod
getValue
in interface AggregationMethod
public static void getValueCodegen(AggregationMethodFactoryRate forge, int column, CodegenMethodNode method)
public long getInterval()
public long getOneSecondTime()
public java.util.ArrayDeque<java.lang.Long> getPoints()
public boolean isHasLeave()
public void setHasLeave(boolean hasLeave)
public TimeProvider getTimeProvider()
public static boolean removeFromHead(java.util.ArrayDeque<java.lang.Long> points, long timestamp, long interval)
points
- pointstimestamp
- timestampinterval
- interval