summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2017-03-12 21:09:32 -0400
committerLuke Shumaker <lukeshu@lukeshu.com>2017-03-12 21:09:32 -0400
commit8deda5a91ff3de167e80d805e8856a74d661fb9c (patch)
tree442a33c93199b89622e5f4dd391d9543f4e78691
parente957f1995b2215e86d84b6a63f880854137f565a (diff)
speed, aggregate
-rw-r--r--dslog/Main.java57
1 files changed, 42 insertions, 15 deletions
diff --git a/dslog/Main.java b/dslog/Main.java
index f95be77..40851bc 100644
--- a/dslog/Main.java
+++ b/dslog/Main.java
@@ -1,38 +1,65 @@
package dslog;
-import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
class Main {
public static void dslog2csv(String[] args) throws IOException {
for (String filename : args) {
System.out.println("Filename: "+filename);
- DslogReader file = new DslogReader(new FileInputStream(filename));
+ DslogReader file = new DslogReader(Files.newInputStream(Paths.get(filename)));
System.out.println("Format Version: "+file.version);
System.out.println("Start Time: "+file.startTime);
CsvWriter.Dslog2CSV(file, System.out);
}
}
+ public static class LogSet {
+ public DslogReader dslog;
+ public DseventsReader dsevents;
+ public PdplogReader pdplog;
+ }
+
+ private static LogSet getSet(Map<String, LogSet> sets, String name) {
+ LogSet set;
+ synchronized (sets) {
+ set = sets.get(name);
+ if (set == null) {
+ set = new LogSet();
+ sets.put(name, set);
+ }
+ }
+ return set;
+ }
+
public static void main(String[] args) throws IOException {
for (String dirname : args) {
- for (File file : (new File(dirname)).listFiles()) {
+ Map<String, LogSet> logsets = new HashMap<String, LogSet>();
+ List<Exception> errs = new ArrayList<Exception>();
+ Files.list(Paths.get(dirname)).parallel().forEach(filepath->{
try {
- if (file.getName().endsWith(".dslog")) {
- DslogReader dslog = new DslogReader(new FileInputStream(file));
- System.out.println(file.getName()+" : "+dslog.version+" : "+dslog.startTime);
- } else if (file.getName().endsWith(".dsevents")) {
- DseventsReader dsevents = new DseventsReader(new FileInputStream(file));
- System.out.println(file.getName()+" : "+dsevents.version+" : "+dsevents.startTime);
- } else if (file.getName().endsWith(".pdplog")) {
- PdplogReader pdplog = new PdplogReader(new FileInputStream(file));
- System.out.println(file.getName()+" : "+pdplog.version);
+ String filename = filepath.getFileName().toString();
+ if (filename.endsWith(".dslog")) {
+ String setname = filename.substring(0, filename.lastIndexOf('.'));
+ getSet(logsets, setname).dslog = new DslogReader(Files.newInputStream(filepath));
+ } else if (filename.endsWith(".dsevents")) {
+ String setname = filename.substring(0, filename.lastIndexOf('.'));
+ getSet(logsets, setname).dsevents = new DseventsReader(Files.newInputStream(filepath));
+ } else if (filename.endsWith(".pdplog")) {
+ String setname = filename.substring(0, filename.lastIndexOf('.'));
+ getSet(logsets, setname).pdplog = new PdplogReader(Files.newInputStream(filepath));
}
} catch (Exception e) {
- (new IOException("Could not read file: "+file.toString(), e)).printStackTrace();
+ synchronized (errs) {
+ errs.add(new IOException("Could not read file: "+filepath.toString(), e));
+ }
}
- }
+ });
}
}
}