Class TimeWindow
java.lang.Object
com.espertech.esper.common.internal.collection.TimeWindow
- All Implemented Interfaces:
Iterable
Container for events per time slot. The time is provided as long milliseconds by client classes.
Events are for a specified timestamp and the implementation creates and adds the event to a slot for that timestamp.
Events can be expired from the window via the expireEvents method when their timestamp is before
(or less then) an expiry timestamp passed in. Expiry removes the event from the window.
The window allows iteration through its contents.
It is assumed that the timestamp passed to the add method is ascending. The window is backed by a collection reflecting the timestamp order rather then any sorted map or linked hash map for performance reasons.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
Adds event to the time window for the specified timestamp.void
adjust
(long delta) Adjust expiry dates.final ArrayDeque<EventBean>
expireEvents
(long expireBefore) Return and remove events in time-slots earlier (less) then the timestamp passed in, returning the list of events expired.final Long
Returns the oldest timestamp in the collection if there is at least one entry, else it returns null if the window is empty.Returns the reverse index, for testing purposes.final boolean
isEmpty()
Returns true if the window is currently empty.iterator()
Returns event iterator.final void
Removes the event from the window, if remove stream handling is enabled.void
setReverseIndex
(Map<EventBean, TimeWindowPair> reverseIndex) void
setWindow
(ArrayDeque<TimeWindowPair> window, int size) void
visitView
(ViewDataVisitor viewDataVisitor, DataWindowViewFactory viewFactory) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
TimeWindow
public TimeWindow(boolean isSupportRemoveStream) Ctor.- Parameters:
isSupportRemoveStream
- true to indicate the time window should support effective removal of events in the window based on the remove stream events received, or false to not accomodate removal at all
-
-
Method Details
-
adjust
public void adjust(long delta) Adjust expiry dates.- Parameters:
delta
- delta to adjust for
-
add
Adds event to the time window for the specified timestamp.- Parameters:
timestamp
- - the time slot for the eventbean
- - event to add
-
remove
Removes the event from the window, if remove stream handling is enabled.- Parameters:
theEvent
- to remove
-
expireEvents
Return and remove events in time-slots earlier (less) then the timestamp passed in, returning the list of events expired.- Parameters:
expireBefore
- is the timestamp from which on to keep events in the window- Returns:
- a list of events expired and removed from the window, or null if none expired
-
iterator
Returns event iterator. -
getOldestTimestamp
Returns the oldest timestamp in the collection if there is at least one entry, else it returns null if the window is empty.- Returns:
- null if empty, oldest timestamp if not empty
-
isEmpty
public final boolean isEmpty()Returns true if the window is currently empty.- Returns:
- true if empty, false if not
-
getReverseIndex
Returns the reverse index, for testing purposes.- Returns:
- reverse index
-
getWindow
-
setWindow
-
setReverseIndex
-
visitView
-