diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/DisconnectEvent.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/DisconnectEvent.java index a271ed6..ea23e18 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/DisconnectEvent.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/DisconnectEvent.java @@ -1,3 +1,3 @@ package ch.unibas.dmi.dbis.cs108.casono.server.network; -public record DisconnectEvent(SessionId sessionId) {} +public record DisconnectEvent(SessionId sessionId) implements Event {} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/Event.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/Event.java new file mode 100644 index 0000000..0c89aa1 --- /dev/null +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/Event.java @@ -0,0 +1,3 @@ +package ch.unibas.dmi.dbis.cs108.casono.server.network; + +interface Event {} diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/EventBus.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/EventBus.java index 5802c8c..e099f67 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/EventBus.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/EventBus.java @@ -9,12 +9,12 @@ import java.util.function.Consumer; public class EventBus { private final Map, List>> handlers = new ConcurrentHashMap<>(); - public void subscribe(Class eventType, Consumer handler) { + public void subscribe(Class eventType, Consumer handler) { handlers.computeIfAbsent(eventType, k -> new CopyOnWriteArrayList<>()) .add((Consumer) handler); } - public void publish(T event) { + public void publish(T event) { List> subscribers = handlers.get(event.getClass()); if (subscribers != null) { subscribers.forEach(h -> h.accept(event));