using System;
namespace CSVReader
{
public interface ICSVReader
{
///
/// Reads either the current or last entry based on and moves the pointer in that direction.
///
///
/// The next in correct direction.
///
/// Direction of read command.
InputObject ReadNextEntry(bool forward);
///
/// Moves the pointer to the entry that has the closest timestamp to .
///
///
/// The timestamp that is assumed to be the closest to the input time.
///
/// Time to move the pointer to.
double JumpToEntry(double time, bool forward);
///
/// Tests whether a timestamp is in bounds of the current file.
///
///
/// A bool inidcationg if is in bounds of the file.
///
/// Time to check.
bool IsInBounds(double time);
///
/// Finds the timestamp of the next file entry in direction. Does NOT move the pointer.
///
///
/// The timestamp of the next entry.
///
/// Direction to read.
double Peek(bool forward);
///
/// Finds the Timestamp of the last Element in the underlying file.
///
///
/// The timestamp of the last entry.
///
double GetLastTimestamp();
///
/// Finds the Timestamp of the first Element in the underlying file.
///
///
/// The timestamp of the first entry.
///
double GetFirstTimestamp();
///
///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);
///
/// Closes the stream on the File.
///
void TearDown();
}
}