preparing event bus

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-12-16 15:26:39 +01:00
parent 8575a9a3a4
commit a924f25f51
5 changed files with 43 additions and 0 deletions

6
bus/build.gradle.kts Normal file
View File

@@ -0,0 +1,6 @@
description = "Umbrella : Messagebus"
dependencies{
implementation(project(":core"))
}

View File

@@ -0,0 +1,4 @@
package de.srsoftware.umbrella.messagebus;
public class Event {
}

View File

@@ -0,0 +1,5 @@
package de.srsoftware.umbrella.messagebus;
public interface EventListener {
public void onEvent(Event event);
}

View File

@@ -0,0 +1,27 @@
package de.srsoftware.umbrella.messagebus;
import java.util.HashSet;
import java.util.Set;
public class MessageBus {
private static MessageBus SINGLETON = new MessageBus();
private Set<EventListener> listeners = new HashSet<>();
private MessageBus(){}
public void dispatch(Event event){
listeners.parallelStream().forEach(l -> l.onEvent(event));
}
public void drop(EventListener listener){
listeners.remove(listener);
}
public static MessageBus messageBus(){
return SINGLETON;
}
public void register(EventListener listener){
listeners.add(listener);
}
}

View File

@@ -2,6 +2,7 @@ rootProject.name = "Umbrella25"
include("backend")
include("bookmark")
include("bus")
include("company")
include("contact")
include("core")