forked from Qortal/qortal
catbref
4 years ago
3 changed files with 44 additions and 0 deletions
@ -0,0 +1,5 @@
|
||||
package org.qortal.event; |
||||
|
||||
public interface Event { |
||||
|
||||
} |
@ -0,0 +1,33 @@
|
||||
package org.qortal.event; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
public enum EventBus { |
||||
INSTANCE; |
||||
|
||||
private static final List<Listener> LISTENERS = new ArrayList<>(); |
||||
|
||||
public void addListener(Listener newListener) { |
||||
synchronized (LISTENERS) { |
||||
LISTENERS.add(newListener); |
||||
} |
||||
} |
||||
|
||||
public void removeListener(Listener listener) { |
||||
synchronized (LISTENERS) { |
||||
LISTENERS.remove(listener); |
||||
} |
||||
} |
||||
|
||||
public void notify(Event event) { |
||||
List<Listener> clonedListeners; |
||||
|
||||
synchronized (LISTENERS) { |
||||
clonedListeners = new ArrayList<>(LISTENERS); |
||||
} |
||||
|
||||
for (Listener listener : clonedListeners) |
||||
listener.listen(event); |
||||
} |
||||
} |
Loading…
Reference in new issue