Files
Umbrella/bus/src/main/java/de/srsoftware/umbrella/messagebus/MessageBus.java
Stephan Richter 31bb075be7
All checks were successful
Build Docker Image / Docker-Build (push) Successful in 2m13s
Build Docker Image / Clean-Registry (push) Successful in -2s
Merge branch 'feature/fallback_sender' into dev
2026-01-28 00:37:02 +01:00

36 lines
850 B
Java

/* © SRSoftware 2025 */
package de.srsoftware.umbrella.messagebus;
import de.srsoftware.umbrella.messagebus.events.Event;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class MessageBus {
private static final MessageBus SINGLETON = new MessageBus();
private final Set<EventListener> listeners = new HashSet<>();
private MessageBus(){}
public void dispatch(Event event){
new Thread(() -> { // TODO: use thread pool
try {
Thread.sleep(100);
List.copyOf(listeners).parallelStream().forEach(l -> l.onEvent(event));
} catch (InterruptedException ignored) {
}
}).start();
}
public void drop(EventListener listener){
listeners.remove(listener);
}
public static MessageBus messageBus(){
return SINGLETON;
}
public void register(EventListener listener){
listeners.add(listener);
}
}