Skip to content

Performance and thread-safe oriented eventbus

License

Notifications You must be signed in to change notification settings

Skytils/keventbus

 
 

Repository files navigation

KEventBus

JVM Eventbus focused on thread-safety and performance.

Registering

Kotlin

// Create eventbus
private val eventBus = eventbus {
    invoker { LMFInvoker() }
    exceptionHandler { exception -> println("Error occurred in method: ${exception.message}")  }
}

// Method you would like to subscribe to an event
// Param #1 is MessagedReceivedEvent therefore this method will be subscribed to that class
@Subscribe
fun `subscribed method`(event: MessageReceivedEvent) {
    // do something
    println(event.message)
}
...
// Register all the @Subscribe 'd methods inside of an instance
eventBus.register(this)

Java

// Create eventbus
private EventBus eventBus = new EventBus(new LMFInvoker(), e -> {
    System.out.println("Error occurred in method: " + e.getMessage());
});

// Method you would like to subscribe to an event
// Param #1 is MessagedReceivedEvent therefore this method will be subscribed to that class
@Subscribe
public void subscribedMethod(MessageReceivedEvent event) {
    System.out.println(event.getMessage());
}
...
// Register all the @Subscribe 'd methods inside of an instance        
eventBus.register(this)

Posting

Kotlin

// Post all methods subscribed to the event `MessageReceivedEvent`
eventBus.post(MessageReceivedEvent("Hello world"))

Java

// Post all methods subscribed to the event `MessageReceivedEvent`
eventBus.post(new MessageReceivedEvent("Hello world"));

Unregistering

Kotlin

// Remove all @Subscribe 'd methods from an instance
eventBus.unregister(this)

Java

// Remove all @Subscribe 'd methods from an instance
eventBus.unregister(this)

About

Performance and thread-safe oriented eventbus

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 72.3%
  • Java 27.7%