All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.espertech.esper.view.HistoricalEventViewable Maven / Gradle / Ivy

Go to download

Complex event processing and event series analysis component

There is a newer version: 7.1.0
Show newest version
/**************************************************************************************
 * Copyright (C) 2008 EsperTech, Inc. All rights reserved.                            *
 * http://esper.codehaus.org                                                          *
 * http://www.espertech.com                                                           *
 * ---------------------------------------------------------------------------------- *
 * The software in this package is published under the terms of the GPL license       *
 * a copy of which has been included with this distribution in the license.txt file.  *
 **************************************************************************************/
package com.espertech.esper.view;

import com.espertech.esper.epl.join.pollindex.PollResultIndexingStrategy;
import com.espertech.esper.epl.join.table.EventTable;
import com.espertech.esper.epl.db.DataCache;
import com.espertech.esper.epl.expression.ExprEvaluatorContext;
import com.espertech.esper.client.EventBean;
import com.espertech.esper.util.StopCallback;

import java.util.SortedSet;

/**
 * Interface for views that poll data based on information from other streams.
 */
public interface HistoricalEventViewable extends Viewable, ValidatedView, StopCallback
{
    /**
     * Returns true if the parameters expressions to the historical require other stream's data,
     * or false if there are no parameters or all parameter expressions are only contants and variables without
     * properties of other stream events.
     * @return indicator whether properties are required for parameter evaluation
     */
    public boolean hasRequiredStreams();

    /**
     * Returns the a set of stream numbers of all streams that provide property values
     * in any of the parameter expressions to the stream.
     * @return set of stream numbers
     */
    public SortedSet getRequiredStreams();

    /**
     * Historical views are expected to provide a thread-local data cache
     * for use in keeping row ({@link com.espertech.esper.client.EventBean} references) returned during iteration
     * stable, since the concept of a primary key does not exist.
     * @return thread-local cache, can be null for any thread to indicate no caching
     */
    public ThreadLocal getDataCacheThreadLocal();

    /**
     * Poll for stored historical or reference data using events per stream and
     * returing for each event-per-stream row a separate list with events
     * representing the poll result.
     * @param lookupEventsPerStream is the events per stream where the
     * first dimension is a number of rows (often 1 depending on windows used) and
     * the second dimension is the number of streams participating in a join.
     * @param indexingStrategy the strategy to use for converting poll results into a indexed table for fast lookup
     * @param exprEvaluatorContext context for expression evalauation
     * @return array of lists with one list for each event-per-stream row
     */
    public EventTable[] poll(EventBean[][] lookupEventsPerStream, PollResultIndexingStrategy indexingStrategy, ExprEvaluatorContext exprEvaluatorContext);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy