package org.jactr.eclipse.runtime.session.stream;
/*
* default logging
*/
import java.util.Collection;
import java.util.UUID;
import org.jactr.eclipse.runtime.session.data.ISessionData;
public interface ISessionDataStream<T>
{
public UUID getSessionId();
public ISessionData getSessionData();
public String getStreamName();
/**
* return the number of records between start and end times.
*
* @param startTime
* @param endTime
* @return
*/
public long getAmountOfDataAvailable(double startTime, double endTime);
/**
* return all the available data for this time range, inclusive
*
* @param startTime
* @param endTime
* @return
*/
public Collection<T> getData(double startTime, double endTime,
Collection<T> container);
/**
* get the lastest data that is less than or equal to endTime
*
* @param endTime
* @param container
* @return
*/
public Collection<T> getLatestData(double endTime, Collection<T> container);
/**
* earliest available time
*
* @return
*/
public double getStartTime();
/**
* latested availabel time
*
* @return
*/
public double getEndTime();
public void clear();
}