package uk.ac.imperial.lsds.seepworker.core.input; import java.util.List; import uk.ac.imperial.lsds.seep.api.DataStoreType; import uk.ac.imperial.lsds.seep.api.data.ITuple; import uk.ac.imperial.lsds.seep.api.data.Schema; import uk.ac.imperial.lsds.seep.core.IBuffer; import uk.ac.imperial.lsds.seep.core.InputAdapter; import uk.ac.imperial.lsds.seep.core.InputAdapterReturnType; import uk.ac.imperial.lsds.seepworker.WorkerConfig; public class FileDataStream implements InputAdapter { final private short RETURN_TYPE = InputAdapterReturnType.ONE.ofType(); final private DataStoreType TYPE = DataStoreType.FILE; final private int streamId; private ITuple iTuple; private IBuffer buffer; public FileDataStream(WorkerConfig wc, int streamId, IBuffer buffer, Schema expectedSchema){ this.streamId = streamId; this.iTuple = new ITuple(expectedSchema); this.buffer = buffer; } public static FileDataStream getFileDataStream_test(int streamId, IBuffer buffer, Schema s){ return new FileDataStream(null, streamId, buffer, s); } @Override public int getStreamId() { return streamId; } @Override public short returnType() { return RETURN_TYPE; } @Override public DataStoreType getDataStoreType() { return TYPE; } @Override public List<ITuple> pullDataItems(int timeout) { // TODO Auto-generated method stub return null; } @Override public ITuple pullDataItem(int timeout) { byte[] data = buffer.read(timeout); if(data == null) { return null; } iTuple.setData(data); iTuple.setStreamId(streamId); return iTuple; } }