Change EventBus to Bus

This commit is contained in:
2025-03-18 16:17:50 +01:00
parent cd320b31da
commit 908cc888ad
4 changed files with 13 additions and 15 deletions

View File

@@ -0,0 +1,27 @@
package eventDemo.libs.bus
import io.github.oshai.kotlinlogging.withLoggingContext
import kotlinx.coroutines.runBlocking
class BusInMemory<E> : Bus<E> {
private val subscribers: MutableList<Pair<Int, suspend (E) -> Unit>> = mutableListOf()
override fun publish(item: E) {
subscribers
.sortedByDescending { (priority, _) -> priority }
.forEach { (_, block) ->
runBlocking {
withLoggingContext("busItem" to item.toString()) {
block(item)
}
}
}
}
override fun subscribe(
priority: Int,
block: suspend (E) -> Unit,
) {
subscribers.add(priority to block)
}
}