|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.espertech.esper.view.ViewSupport
com.espertech.esper.view.window.TimeBatchView
public class TimeBatchView
A data view that aggregates events in a stream and releases them in one batch at every specified time interval. The view works similar to a time_window but in not continuous. The view releases the batched events after the interval as new data to child views. The prior batch if not empty is released as old data to child view. The view doesn't release intervals with no old or new data. It also does not collect old data published by a parent view. For example, we want to calculate the average of IBM stock every hour, for the last hour. The view accepts 2 parameter combinations. (1) A time interval is supplied with a reference point - based on this point the intervals are set. (1) A time interval is supplied but no reference point - the reference point is set when the first event arrives. If there are no events in the current and prior batch, the view will not invoke the update method of child views. In that case also, no next callback is scheduled with the scheduling service until the next event arrives.
Field Summary | |
---|---|
protected AgentInstanceViewFactoryChainContext |
agentInstanceContext
|
protected java.util.ArrayDeque<EventBean> |
currentBatch
|
protected java.lang.Long |
currentReferencePoint
|
protected EPStatementHandleCallback |
handle
|
protected java.lang.Long |
initialReferencePoint
|
protected boolean |
isCallbackScheduled
|
protected boolean |
isForceOutput
|
protected boolean |
isStartEager
|
protected java.util.ArrayDeque<EventBean> |
lastBatch
|
protected long |
msecIntervalSize
|
protected ScheduleSlot |
scheduleSlot
|
protected ViewUpdatedCollection |
viewUpdatedCollection
|
Fields inherited from class com.espertech.esper.view.ViewSupport |
---|
EMPTY_VIEW_ARRAY, parent |
Constructor Summary | |
---|---|
TimeBatchView(TimeBatchViewFactory timeBatchViewFactory,
AgentInstanceViewFactoryChainContext agentInstanceContext,
long msecIntervalSize,
java.lang.Long referencePoint,
boolean forceOutput,
boolean isStartEager,
ViewUpdatedCollection viewUpdatedCollection)
Constructor. |
Method Summary | |
---|---|
View |
cloneView()
Duplicates the view. |
protected static long |
computeWaitMSec(long current,
long reference,
long interval)
Given a current time and a reference time and an interval size, compute the amount of milliseconds till the next interval. |
EventType |
getEventType()
Provides metadata information about the type of object the event collection contains. |
java.lang.Long |
getInitialReferencePoint()
Gets the reference point to use to anchor interval start and end dates to. |
long |
getMsecIntervalSize()
Returns the interval size in milliseconds. |
boolean |
isEmpty()
Returns true if the window is empty, or false if not empty. |
boolean |
isForceOutput()
True for force-output. |
boolean |
isStartEager()
True for start-eager. |
java.util.Iterator<EventBean> |
iterator()
Allows iteration through all elements in this event collection. |
protected void |
scheduleCallback()
|
protected void |
sendBatch()
This method updates child views and clears the batch of events. |
void |
stop()
Stops the underlying resources. |
void |
stopSchedule()
|
void |
stopView()
|
java.lang.String |
toString()
|
void |
update(EventBean[] newData,
EventBean[] oldData)
Notify that data has been added or removed from the Viewable parent. |
Methods inherited from class com.espertech.esper.view.ViewSupport |
---|
addView, addView, dumpChildViews, dumpUpdateParams, dumpUpdateParams, findDescendent, findViewIndex, getParent, getViews, hasViews, removeAllViews, removeView, removeView, setParent, updateChildren, updateChildren |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.espertech.esper.view.View |
---|
getParent, setParent |
Methods inherited from interface com.espertech.esper.view.Viewable |
---|
addView, getViews, hasViews, removeAllViews, removeView |
Field Detail |
---|
protected final AgentInstanceViewFactoryChainContext agentInstanceContext
protected final long msecIntervalSize
protected final java.lang.Long initialReferencePoint
protected final boolean isForceOutput
protected final boolean isStartEager
protected final ViewUpdatedCollection viewUpdatedCollection
protected final ScheduleSlot scheduleSlot
protected EPStatementHandleCallback handle
protected java.lang.Long currentReferencePoint
protected java.util.ArrayDeque<EventBean> lastBatch
protected java.util.ArrayDeque<EventBean> currentBatch
protected boolean isCallbackScheduled
Constructor Detail |
---|
public TimeBatchView(TimeBatchViewFactory timeBatchViewFactory, AgentInstanceViewFactoryChainContext agentInstanceContext, long msecIntervalSize, java.lang.Long referencePoint, boolean forceOutput, boolean isStartEager, ViewUpdatedCollection viewUpdatedCollection)
msecIntervalSize
- is the number of milliseconds to batch events forreferencePoint
- is the reference point onto which to base intervals, or null if
there is no such reference point suppliedviewUpdatedCollection
- is a collection that the view must update when receiving eventstimeBatchViewFactory
- for copying this view in a group-byforceOutput
- is true if the batch should produce empty output if there is no value to output following time intervalsisStartEager
- is true for start-eagerMethod Detail |
---|
public View cloneView()
CloneableView
Expected to return a same view in initialized state for grouping.
cloneView
in interface CloneableView
public final long getMsecIntervalSize()
public final java.lang.Long getInitialReferencePoint()
public boolean isForceOutput()
public boolean isStartEager()
public final EventType getEventType()
EventCollection
getEventType
in interface EventCollection
public void update(EventBean[] newData, EventBean[] oldData)
View
update
in interface View
newData
- is the new data that has been added to the parent viewoldData
- is the old data that has been removed from the parent viewprotected void sendBatch()
public boolean isEmpty()
public final java.util.Iterator<EventBean> iterator()
EventCollection
iterator
in interface EventCollection
iterator
in interface java.lang.Iterable<EventBean>
public final java.lang.String toString()
toString
in class java.lang.Object
protected void scheduleCallback()
protected static long computeWaitMSec(long current, long reference, long interval)
current
- is the current timereference
- is the reference pointinterval
- is the interval size
public void stopView()
stopView
in interface StoppableView
public void stop()
StopCallback
stop
in interface StopCallback
public void stopSchedule()
|
© 2006-2011 EsperTech Inc. All rights reserved. Visit us at espertech.com |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |