ContinuousSessionProvider

一组 Session 的元素之一, 用来向 ContinuousSessionReceiver 推送事件 T 并获悉结果 R 的“供应者”。

val session = context.session(Key()) {
val next = await { v -> v.toResult() } // 假设 toResult() 将事件转化为结果
} ↑ |
|-- | ---------------------|
| |-----------|
↓ |
val result = session.push(value) // 此处得到 v.toResult() 的结果

Author

ForteScarlet

Inheritors

Properties

Link copied to clipboard
abstract val isActive: Boolean

是否处于活跃状态。

Link copied to clipboard
abstract val isCancelled: Boolean

是否由于 cancel 而完成。

Link copied to clipboard
abstract val isCompleted: Boolean

是否已经完成。

Functions

Link copied to clipboard
open fun cancel()
abstract fun cancel(cause: Throwable?)

关闭对应的 session。 关闭后会同时将对应的 session 从对应的 ContinuousSessionContext 中移除。

Link copied to clipboard
abstract suspend fun join()

挂起直到 session 完成任务或被关闭。

Link copied to clipboard
abstract override fun onCompletion(handle: OnCompletion)

注册一个当 session 完成任务后执行的回调 handle。 也可以通过此回调得知被终止时的异常。

Link copied to clipboard
abstract suspend fun push(value: T): R

推送一个事件到对应的 ContinuousSessionReceiver 中并挂起直到将其 消费 或被关闭。