From a6db0254bf9bc3f4ed1058c20cf294b66d455be4 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 12 Mar 2017 04:05:42 -0400 Subject: initial commit --- dslog/DseventsReader.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 dslog/DseventsReader.java (limited to 'dslog/DseventsReader.java') diff --git a/dslog/DseventsReader.java b/dslog/DseventsReader.java new file mode 100644 index 0000000..c3c7dc5 --- /dev/null +++ b/dslog/DseventsReader.java @@ -0,0 +1,56 @@ +package dslog; + +import java.io.IOException; +import java.io.InputStream; +import java.lang.UnsupportedOperationException; +import java.time.Duration; +import java.time.Instant; +import java.util.stream.IntStream; + +class DseventsReader { + private final InputStream reader; + + public final int version; + public final Instant startTime; + + public DseventsReader(InputStream reader) throws IOException { + this.reader = reader; + this.version = Read.i32(reader); + switch (this.version) { + case 0: + throw new UnsupportedOperationException("DSEVENTS version 0 not implemented yet"); + case 1: + case 2: + case 3: // 2016-now + this.startTime = Read.LVTimestamp(reader); + break; + default: + throw new UnsupportedOperationException("DSEVENTS file version ("+this.version+") newer than log reader (3)"); + } + } + + public static class Event { + public Instant time; + public String message; + } + + public Event readEvent() throws IOException{ + switch (version) { + case 0: + throw new UnsupportedOperationException("DSEVENTS version 0 not implemented yet"); + case 1: + case 2: + case 3: + return new Event() {{ + time = Read.LVTimestamp(reader); + message = Read.LVString(reader); + }}; + default: + throw new UnsupportedOperationException("DSEVENTS file version newer than log reader"); + } + } + + public void close() throws IOException { + reader.close(); + } +} -- cgit v1.2.3