From a10117f68641c61377528c01312b4045613dd1a0332323f1a71100156e2b58c2 Mon Sep 17 00:00:00 2001 From: Minimons Date: Sat, 24 Jan 2026 19:26:11 +0100 Subject: [PATCH] NoIssue: Add some interfaces --- build.gradle.kts | 1 + .../java/com/r35157/nenjim/kicker/Kicker.java | 25 +++++++++++++++++++ .../r35157/nenjim/kicker/NenjimProcess.java | 13 ++++++++++ 3 files changed, 39 insertions(+) create mode 100644 src/main/java/com/r35157/nenjim/kicker/Kicker.java create mode 100644 src/main/java/com/r35157/nenjim/kicker/NenjimProcess.java diff --git a/build.gradle.kts b/build.gradle.kts index d180922..c51a90a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -29,6 +29,7 @@ repositories { dependencies { compileOnly("org.jetbrains:annotations:26.0.2-1") + implementation("com.r35157.nenjim:hubd-api:0.1-dev") } java { diff --git a/src/main/java/com/r35157/nenjim/kicker/Kicker.java b/src/main/java/com/r35157/nenjim/kicker/Kicker.java new file mode 100644 index 0000000..88a1521 --- /dev/null +++ b/src/main/java/com/r35157/nenjim/kicker/Kicker.java @@ -0,0 +1,25 @@ +package com.r35157.nenjim.kicker; + +import java.util.HashMap; + +public interface Kicker { + /** + * Starts a process based on the provided fully qualified interface name. + * The actual implementation that is run is binded according to the Context. + * + * @param fqInterfaceName the fully qualified interface name of the process to start. The interface must extend the {@code NenjimProcess} interface. + */ + void startProcess(String fqInterfaceName); + + /** + * Provides a map of all running processes managed by the NenjimHub, keyed by the processId. + * + * @return a map of {@code NenjimProcess} running processes + */ + HashMap getRunningProcesses(); + + /** + * A no-operation (noop). This method does nothing. + */ + void noop(); +} diff --git a/src/main/java/com/r35157/nenjim/kicker/NenjimProcess.java b/src/main/java/com/r35157/nenjim/kicker/NenjimProcess.java new file mode 100644 index 0000000..db48dbf --- /dev/null +++ b/src/main/java/com/r35157/nenjim/kicker/NenjimProcess.java @@ -0,0 +1,13 @@ +package com.r35157.nenjim.kicker; + +import com.r35157.nenjim.hubd.Context; +import com.r35157.nenjim.hubd.NenjimHub; + +public interface NenjimProcess { + void run() throws Exception; + + void setContext(Context context); + void setHub(NenjimHub hub); + + String getName(); +}