From b3506af8ad2b8a085fbdc49efd52ec632594d576 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Tue, 4 Aug 2015 12:59:45 +0000 Subject: [PATCH] Some small changes --- Zutil.jar | Bin 6164113 -> 6164565 bytes src/zutil/osal/app/windows/TypePerf.java | 24 +++++++++++++++++++++-- src/zutil/parser/CSVParser.java | 14 ++++++++++--- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Zutil.jar b/Zutil.jar index d9d0cb1a3c1a0bd15794beabf93abf0678a192f5..9d7194d6fe08660224287baab85f430b42e3bc1b 100644 GIT binary patch delta 6106 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 delta 5781 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 + // Only available Vista and later... //https://www.webperformance.com/support/suite/manual/Content/Locating_Server_Metric_Counters.htm /* @@ -53,5 +62,16 @@ public class TypePerf { */ private static final String PERF_NET_PATH = "\\Network Interface(*)\\*"; - //typeperf "path" -SC 0 -y + + + private static DataNode[] execute(String path) throws IOException { + DataNode[] ret = new DataNode[2]; + + String[] output = OSAbstractionLayer.runCommand("typeperf \""+ path +"\" -SC 0 -y"); + CSVParser parser = new CSVParser(new StringReader(output[1] + "\n" + output[2])); + + ret[0] = parser.getHeaders(); + ret[1] = parser.read(); + return ret; + } } diff --git a/src/zutil/parser/CSVParser.java b/src/zutil/parser/CSVParser.java index 1f26be1..ff64391 100644 --- a/src/zutil/parser/CSVParser.java +++ b/src/zutil/parser/CSVParser.java @@ -53,6 +53,14 @@ public class CSVParser extends Parser{ } public DataNode getHeaders() { + if(parseHeader) { + try { + parseHeader = false; + headers = read(); + }catch (IOException e){ + e.printStackTrace(); + } + } return headers; } @@ -67,7 +75,7 @@ public class CSVParser extends Parser{ return new CSVParser(new StringReader(csv)).read(); }catch (IOException e){ e.printStackTrace(); - }catch (NullPointerException e){} + } return null; } @@ -80,9 +88,9 @@ public class CSVParser extends Parser{ */ @Override public DataNode read() throws IOException { + // Make sure we have parsed headers if(parseHeader) { - parseHeader = false; - headers = read(); + getHeaders(); } DataNode data = new DataNode(DataNode.DataType.List);