From 74d6791b3194a22f0f127ee9e14e3892f7f4c430 Mon Sep 17 00:00:00 2001 From: rusefi Date: Sun, 7 Jun 2020 13:22:34 -0400 Subject: [PATCH] refactoring & dead code --- .../rusefi/binaryprotocol/BinaryProtocol.java | 3 ++- .../com/rusefi/io/ConnectionStatusLogic.java | 1 - .../src/com/rusefi/io/ConnectionWatchdog.java | 12 ++------- .../src/com/rusefi/io/HeartBeatListeners.java | 27 +++++++++++++++++++ .../io/src/com/rusefi/io/LinkManager.java | 2 +- .../src/com/rusefi/core/EngineState.java | 3 --- .../com/rusefi/core/EngineTimeListener.java | 9 ------- 7 files changed, 32 insertions(+), 25 deletions(-) create mode 100644 java_console/io/src/com/rusefi/io/HeartBeatListeners.java delete mode 100644 java_console/models/src/com/rusefi/core/EngineTimeListener.java diff --git a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java index a218578c83..6e74a27700 100644 --- a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java +++ b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java @@ -204,7 +204,7 @@ public class BinaryProtocol implements BinaryProtocolCommands { @Override public void run() { if (requestOutputChannels()) - ConnectionWatchdog.onDataArrived(); + HeartBeatListeners.onDataArrived(); compositeLogic(); String text = requestPendingMessages(); if (text != null) @@ -336,6 +336,7 @@ public class BinaryProtocol implements BinaryProtocolCommands { continue; } + HeartBeatListeners.onDataArrived(); ConnectionStatusLogic.INSTANCE.markConnected(); System.arraycopy(response, 1, image.getContent(), offset, requestSize); diff --git a/java_console/io/src/com/rusefi/io/ConnectionStatusLogic.java b/java_console/io/src/com/rusefi/io/ConnectionStatusLogic.java index 66a8e5b5ae..2d2e20d56b 100644 --- a/java_console/io/src/com/rusefi/io/ConnectionStatusLogic.java +++ b/java_console/io/src/com/rusefi/io/ConnectionStatusLogic.java @@ -1,7 +1,6 @@ package com.rusefi.io; import com.rusefi.config.generated.Fields; -import com.rusefi.core.EngineTimeListener; import com.rusefi.core.MessagesCentral; import com.rusefi.core.Sensor; import com.rusefi.core.SensorCentral; diff --git a/java_console/io/src/com/rusefi/io/ConnectionWatchdog.java b/java_console/io/src/com/rusefi/io/ConnectionWatchdog.java index c15cf5e254..9f2a2b9e2e 100644 --- a/java_console/io/src/com/rusefi/io/ConnectionWatchdog.java +++ b/java_console/io/src/com/rusefi/io/ConnectionWatchdog.java @@ -2,8 +2,6 @@ package com.rusefi.io; import com.rusefi.FileLog; import com.rusefi.Timeouts; -import com.rusefi.core.EngineTimeListener; -import com.rusefi.io.LinkManager; import javax.swing.*; import java.awt.event.ActionEvent; @@ -23,17 +21,11 @@ public class ConnectionWatchdog { } public static void start() { + HeartBeatListeners.INSTANCE.addListener(ConnectionWatchdog::onDataArrived); onDataArrived(); - - LinkManager.engineState.timeListeners.add(new EngineTimeListener() { - @Override - public void onTime(double time) { - onDataArrived(); - } - }); } - public static void onDataArrived() { + private static void onDataArrived() { /** * this timer will reconnect */ diff --git a/java_console/io/src/com/rusefi/io/HeartBeatListeners.java b/java_console/io/src/com/rusefi/io/HeartBeatListeners.java new file mode 100644 index 0000000000..ca260fc693 --- /dev/null +++ b/java_console/io/src/com/rusefi/io/HeartBeatListeners.java @@ -0,0 +1,27 @@ +package com.rusefi.io; + +import java.util.concurrent.CopyOnWriteArrayList; + +/** + * Singleton which allows listeners to be notified of controller data arrival. + */ +public enum HeartBeatListeners { + INSTANCE; + + private final CopyOnWriteArrayList listeners = new CopyOnWriteArrayList<>(); + + public synchronized void addListener(Listener listener) { + listeners.add(listener); + if (listeners.size() > 16) + throw new IllegalStateException("Very unexpected " + listeners); + } + + public static void onDataArrived() { + for (Listener listener : INSTANCE.listeners) + listener.onDataArrival(); + } + + public interface Listener { + void onDataArrival(); + } +} diff --git a/java_console/io/src/com/rusefi/io/LinkManager.java b/java_console/io/src/com/rusefi/io/LinkManager.java index ca24307c33..f2db611925 100644 --- a/java_console/io/src/com/rusefi/io/LinkManager.java +++ b/java_console/io/src/com/rusefi/io/LinkManager.java @@ -130,7 +130,7 @@ public class LinkManager { @Override public void beforeLine(String fullLine) { FileLog.MAIN.logLine(fullLine); - ConnectionWatchdog.onDataArrived(); + HeartBeatListeners.onDataArrived(); } }); diff --git a/java_console/models/src/com/rusefi/core/EngineState.java b/java_console/models/src/com/rusefi/core/EngineState.java index e6de5ef77c..743bdd79f1 100644 --- a/java_console/models/src/com/rusefi/core/EngineState.java +++ b/java_console/models/src/com/rusefi/core/EngineState.java @@ -7,7 +7,6 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.util.*; -import java.util.concurrent.CopyOnWriteArrayList; /** * Date: 12/25/12 @@ -43,8 +42,6 @@ public class EngineState { } } - public final List timeListeners = new CopyOnWriteArrayList<>(); - private final ResponseBuffer buffer; private final List actions = new ArrayList<>(); private final Set keys = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); diff --git a/java_console/models/src/com/rusefi/core/EngineTimeListener.java b/java_console/models/src/com/rusefi/core/EngineTimeListener.java deleted file mode 100644 index 200380512b..0000000000 --- a/java_console/models/src/com/rusefi/core/EngineTimeListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.rusefi.core; - -/** - * Date: 3/26/13 - * (c) Andrey Belomutskiy - */ -public interface EngineTimeListener { - void onTime(double time); -}