Example usage:
public class HelloBusTest {
private static final int N = Integer.MAX_VALUE;
public static void main(String[] args) {
Bus<Event> bus = new Bus<>(Event.class);
bus.register(
e -> {
e.message = "Hello from lambdas!";
},
100);
bus.register(EventListener.class);
long now = System.currentTimeMillis();
for (int i = 0; i < N; i++) {
Event e = new Event("Hello, World!");
bus.unsafeFireAndForget(e);
}
System.out.println(System.currentTimeMillis() - now);
}
public static final class EventListener {
@Listener
public static void onEvent(Event e) {
e.message = "Hello from hand-crafted classes!";
}
}
public static final class Event {
String message;
public Event(String message) {
this.message = message;
}
}
}
TODO:
- JMH Benchmarks
- Java 9+ support