Files
Umbrella/bus/src/main/java/de/srsoftware/umbrella/messagebus/MessageBus.java
2026-01-09 13:02:53 +01:00

35 lines
814 B
Java

/* © SRSoftware 2025 */
package de.srsoftware.umbrella.messagebus;
import de.srsoftware.umbrella.messagebus.events.Event;
import java.util.HashSet;
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);
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);
}
}