using System.Collections;
using System.Collections.Generic;
using CSVReader;
namespace Processor
{
public interface IProcessor
{
///
/// Starts streaming on the CSV file or Networkstream.
///
///
/// Returns a bool that indicates wether starting the stream was successful.
///
/// Initial direction of the stream.
bool StartStreaming(int samplerate = 4, bool foreward = true);
///
/// Jump to a timestamp of the underlying stream.
///
///
/// Returns a bool that indicates wether the jump was successful.
///
/// The time to jump too.
bool JumpToTimestamp(double timestamp, out double actualTimestamp);
///
/// Reads or returns the next set of values.
///
///
/// The values returned are all values buffered since the last read.
///
///
/// Returns a list with the objects.
///
List ReadNextValues();
///
/// Get the newest Timestamp.
///
///
/// Returns the newest timestamp of the File.
///
double GetNewestTimeStamp();
///
/// Get the oldest Timestamp.
///
///
/// Returns the oldest timestamp of the File.
///
double GetOldestTimeStamp();
///
///Get the first timestamp in the timechunk
///
///
///Returns the first Timestamp in the timechunk.
///NaN if starttimestamp is not set.
///
double GetChunkStarttimestamp();
///
///Get the last timestamp in the timechunk
///
///
///Returns the last timestamp in the timechunk.
///NaN if endtimestamp is not set.
///
double GetChunkEndtimestamp();
///
///Set the first timestamp in the timechunk
///
void SetChunkStarttimestamp(double time);
///
///Set the last timestamp in the timechunk
///
void SetChunkEndtimestamp(double time);
///
/// Reverses the reading direction on the file.
///
///
/// This call also clears the current buffer of any content.
///
void ReverseTime();
///
/// Changes the samplerate of the Processor.
///
void ChangeSamplerate(int newSamplerate);
///
/// Stops the Streaming thread.
///
///
/// This call resets the Processor. It has to be restarted with
///
void StopStreaming();
}
}