EventDispatcher

事件调度器。 EventDispatcher 拥有 EventProcessorEventListenerRegistrar 的职责, 是对事件调度、事件监听器管理的统一单元。

Author

ForteScarlet

Inherited properties

Link copied to clipboard

得到当前容器内所有的 EventListener 的序列。 如无特殊说明则会按照优先级顺序获取。

Inherited functions

Link copied to clipboard
abstract fun dispose(listener: EventListener)

注销所有通过指定的 EventListener 所注册的事件处理器。

Link copied to clipboard
inline fun <E : Event> EventListenerRegistrar.listen(propertiesConsumer: ConfigurerFunction<EventListenerRegistrationProperties>? = null, crossinline typeMismatchResult: EventListenerContext.() -> EventResult = { invalid() }, crossinline listenerFunction: suspend EventListenerContext.(E) -> EventResult): EventListenerRegistrationHandle

为特定事件类型注册事件处理器函数。

Link copied to clipboard
Link copied to clipboard
inline fun EventListenerRegistrar.process(crossinline defaultResult: () -> EventResult = { EventResult.empty() }, propertiesConsumer: ConfigurerFunction<EventListenerRegistrationProperties>? = null, crossinline listenerFunction: suspend EventListenerContext.() -> Unit): EventListenerRegistrationHandle

listenEventListenerRegistrar.register 的进一步简写形式, 注册一个事件处理器。 通过 process 注册的事件处理器函数不会要求你返回 EventResult, 取而代之的是始终返回默认的 defaultResult,默认为 EventResult.empty

inline fun <E : Event> EventListenerRegistrar.process(propertiesConsumer: ConfigurerFunction<EventListenerRegistrationProperties>? = null, crossinline defaultResult: () -> EventResult = { EventResult.empty() }, crossinline typeMismatchResult: EventListenerContext.() -> EventResult = { invalid() }, crossinline listenerFunction: suspend EventListenerContext.(E) -> Unit): EventListenerRegistrationHandle

listenEventListenerRegistrar.register 的进一步简写形式, 注册一个处理特定类型 E 的事件处理器。 通过 process 注册的事件处理器函数不会要求你返回 EventResult, 取而代之的是始终返回默认的 defaultResult,默认为 EventResult.empty

Link copied to clipboard
abstract fun push(event: Event): Flow<EventResult>

推送一个事件, 得到内部所有事件依次将其处理后得到最终的结果流。

Link copied to clipboard

推送事件并将结果转化为 Flux. 需要项目环境中存在 kotlinx-coroutines-reactor 依赖。

Link copied to clipboard

推送事件并将结果转化为 Stream 后返回。

Link copied to clipboard
suspend fun EventProcessor.pushAndCollect(event: Event, collector: FlowCollector<EventResult>? = null)

将事件推送并收集处理。

Link copied to clipboard

推送事件并将结果收集为 C 后返回 CompletableFuture.

推送事件并将结果使用 Collector 收集为 R 后返回 CompletableFuture.

Link copied to clipboard

推送事件并将结果收集为 C 后返回。

推送事件并将结果使用 Collector 收集为 R 后返回。

Link copied to clipboard

推送事件并将结果收集为 List 后返回 CompletableFuture.

Link copied to clipboard

推送事件并将结果收集为 List 后返回。

Link copied to clipboard
open fun pushAndLaunch(scope: CoroutineScope, event: Event): Job

通过 scope 将事件推送并异步处理,不关心事件的结果。

Link copied to clipboard

将事件推送并异步处理。

Link copied to clipboard
inline fun EventProcessor.pushAndLaunchThen(scope: CoroutineScope, event: Event, crossinline useFlow: (Flow<EventResult>) -> Unit): Job

将事件推送并异步处理。

Link copied to clipboard

注册一个默认属性的 EventListener.

注册一个 EventListener 并附加部分额外属性信息。