From 19ebea8b952e8efaba7d18c87f309cb3f2620dff Mon Sep 17 00:00:00 2001 From: rusefi Date: Fri, 22 Nov 2019 16:29:39 -0500 Subject: [PATCH] chrome tracing is pretty cool --- .../models/src/com/rusefi/tracing/Entry.java | 56 +++++++++++++++++++ .../models/src/com/rusefi/tracing/Phase.java | 7 +++ .../com/rusefi/tracing/test/EntryTest.java | 17 ++++++ 3 files changed, 80 insertions(+) create mode 100644 java_console/models/src/com/rusefi/tracing/Entry.java create mode 100644 java_console/models/src/com/rusefi/tracing/Phase.java create mode 100644 java_console/models/src/com/rusefi/tracing/test/EntryTest.java diff --git a/java_console/models/src/com/rusefi/tracing/Entry.java b/java_console/models/src/com/rusefi/tracing/Entry.java new file mode 100644 index 0000000000..0fd9dedc01 --- /dev/null +++ b/java_console/models/src/com/rusefi/tracing/Entry.java @@ -0,0 +1,56 @@ +package com.rusefi.tracing; + +public class Entry { + private final String name; + private final Phase phase; + private final double timestampSeconds; + + public Entry(String name, Phase phase, double timestampSeconds) { + this.name = name; + this.phase = phase; + this.timestampSeconds = timestampSeconds; + } + + private static void AppendKeyValuePair(StringBuilder sb, String x, String y) { + sb.append('"'); + sb.append(x); + sb.append("\":\""); + sb.append(y); + sb.append('"'); + } + + private static void AppendKeyValuePair(StringBuilder sb, String x, int y) { + sb.append('"'); + sb.append(x); + sb.append("\":"); + sb.append(y); + } + + private static void AppendKeyValuePair(StringBuilder sb, String x, double y) { + sb.append('"'); + sb.append(x); + sb.append("\":"); + sb.append(y); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + + sb.append("{"); + AppendKeyValuePair(sb, "name", name); + + sb.append(","); + AppendKeyValuePair(sb, "ph", phase.toString()); + sb.append(","); + AppendKeyValuePair(sb, "tid", 0); + sb.append(","); + + AppendKeyValuePair(sb, "pid", 0); + sb.append(","); + AppendKeyValuePair(sb, "ts", timestampSeconds); + sb.append("}"); + + return sb.toString(); + } +} diff --git a/java_console/models/src/com/rusefi/tracing/Phase.java b/java_console/models/src/com/rusefi/tracing/Phase.java new file mode 100644 index 0000000000..fceb035743 --- /dev/null +++ b/java_console/models/src/com/rusefi/tracing/Phase.java @@ -0,0 +1,7 @@ +package com.rusefi.tracing; + +public enum Phase { + B, + E, + i, +} diff --git a/java_console/models/src/com/rusefi/tracing/test/EntryTest.java b/java_console/models/src/com/rusefi/tracing/test/EntryTest.java new file mode 100644 index 0000000000..9f826f1343 --- /dev/null +++ b/java_console/models/src/com/rusefi/tracing/test/EntryTest.java @@ -0,0 +1,17 @@ +package com.rusefi.tracing.test; + +import com.rusefi.tracing.Entry; +import com.rusefi.tracing.Phase; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class EntryTest { + @Test + public void testToString() { + Entry e = new Entry("hello", Phase.E, 0.1); + + assertEquals("{\"name\":\"hello\",\"ph\":\"E\",\"tid\":0,\"pid\":0,\"ts\":0.1}", e.toString()); + + } +}