Class PriorEventBufferSingle
java.lang.Object
com.espertech.esper.common.internal.view.prior.PriorEventBufferSingle
- All Implemented Interfaces:
ViewUpdatedCollection
,RelativeAccessByEventNIndex
public class PriorEventBufferSingle
extends Object
implements ViewUpdatedCollection, RelativeAccessByEventNIndex
Buffers view-posted insert stream (new data) and remove stream (old data) events for
use with serving prior results in these streams, for a single prior event.
Buffers only exactly those events in new data and old data that are being asked for via the 2 or more 'prior' functions that specify different indexes. For example "select prior(2, price), prior(1, price)" results in on buffer instance handling both the need to the immediatly prior (1) and the 2-events-ago event (2).
As all views are required to post new data and post old data that removes the new data to subsequent views, this buffer can be attached to all views and should not result in a memory leak.
When the buffer receives old data (rstream) events it removes the prior events to the rstream events from the buffer the next time it receives a post (not immediatly) to allow queries to the buffer.
-
Field Summary
Fields inherited from interface com.espertech.esper.common.internal.view.access.RelativeAccessByEventNIndex
EPTYPE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
destroy()
De-allocate resources held by the collection.int
getRelativeToEnd
(int index) getRelativeToEvent
(EventBean theEvent, int priorToIndex) Returns the prior event to the given event counting back the number of events as supplied by index.int
void
Accepts view insert and remove stream.void
update
(EventBean[] newData, EventBean[] oldData, PriorEventBufferChangeCaptureSingle captureSingle)
-
Constructor Details
-
PriorEventBufferSingle
public PriorEventBufferSingle(int priorEventIndex) Ctor.- Parameters:
priorEventIndex
- is the number-of-events prior to the current event we are interested in
-
-
Method Details
-
update
Description copied from interface:ViewUpdatedCollection
Accepts view insert and remove stream.- Specified by:
update
in interfaceViewUpdatedCollection
- Parameters:
newData
- is the insert stream events or null if no dataoldData
- is the remove stream events or null if no data
-
update
public void update(EventBean[] newData, EventBean[] oldData, PriorEventBufferChangeCaptureSingle captureSingle) -
getRelativeToEvent
Description copied from interface:RelativeAccessByEventNIndex
Returns the prior event to the given event counting back the number of events as supplied by index.- Specified by:
getRelativeToEvent
in interfaceRelativeAccessByEventNIndex
- Parameters:
theEvent
- is the event to count back frompriorToIndex
- is the number of events to go back- Returns:
- event
-
getRelativeToEnd
- Specified by:
getRelativeToEnd
in interfaceRelativeAccessByEventNIndex
-
getWindowToEvent
- Specified by:
getWindowToEvent
in interfaceRelativeAccessByEventNIndex
-
getWindowToEventCount
public int getWindowToEventCount()- Specified by:
getWindowToEventCount
in interfaceRelativeAccessByEventNIndex
-
getWindowToEventCollReadOnly
- Specified by:
getWindowToEventCollReadOnly
in interfaceRelativeAccessByEventNIndex
-
getPriorEventMap
-
getNewEvents
-
destroy
public void destroy()Description copied from interface:ViewUpdatedCollection
De-allocate resources held by the collection.- Specified by:
destroy
in interfaceViewUpdatedCollection
-
getNumEventsInsertBuf
public int getNumEventsInsertBuf()- Specified by:
getNumEventsInsertBuf
in interfaceViewUpdatedCollection
-