package edu.usc.enl.dynamicmeasurement.data; import java.io.IOException; import java.util.Iterator; import java.util.LinkedList; import java.util.List; /** * Created with IntelliJ IDEA. * User: masoud * Date: 12/12/13 * Time: 5:30 PM <br/> * This is a kind of tracereader that reads files but also caches the data to not re-read them */ public class CachedMultiFileTraceReader implements PacketLoader.TraceReader { private MultiFileTraceReader reader; private List<String> cache = new LinkedList<>(); private Iterator<String> iterator; public CachedMultiFileTraceReader(MultiFileTraceReader reader) throws IOException { this.reader = reader; while (true) { String line = reader.readLine(); if (line == null) { break; } cache.add(line); } iterator = cache.iterator(); } @Override public void close() throws IOException { reader.close(); } @Override public String readLine() throws IOException { if (iterator.hasNext()) { return iterator.next(); } return null; } public void reset() { iterator = cache.iterator(); } }