Spec-Zone.ru › Kotlin 1.6

ContinuationInterceptor

kotlin-stdlib / kotlin.coroutines / ContinuationInterceptor
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
interface ContinuationInterceptor : Element

Помечает элемент контекста сопрограммы, который перехватывает продолжения сопрограмм. Система сопрограмм использует ContinuationInterceptor.Key для получения перехватчика и перехватывает все продолжения сопрограмм с вызовами interceptContinuation.

ContinuationInterceptor ведет себя как полиморфный элемент, что означает, что его реализация делегирует get и minusKey соответственно к getPolymorphicElement и minusPolymorphicKey. Подтипы ContinuationInterceptor могут быть извлечены из контекста сопрограммы с помощью ContinuationInterceptor.Key или ключа подтипа, если он расширяет AbstractCoroutineContextKey.

Типы

Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

Key

Ключ, определяющий перехватчик контекста.

companion object Key : Key<ContinuationInterceptor>

Функции

Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

get

Возвращает элемент с заданным ключом из этого контекста или null.

open operator fun <E : Element> get(key: Key<E>): E?
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

interceptContinuation

Возвращает продолжение, которое оборачивает исходное продолжение, тем самым перехватывая все возобновления. Эта функция вызывается системой сопрограмм при необходимости, и полученные продолжения кэшируются внутри каждого экземпляра исходного продолжения.

abstract fun <T> interceptContinuation(
    continuation: Continuation<T>
): Continuation<T>
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

minusKey

Возвращает контекст, содержащий элементы из этого контекста, но без элемента с указанным ключом.

open fun minusKey(key: Key<*>): CoroutineContext
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

releaseInterceptedContinuation

Вызывается для экземпляра продолжения, возвращенного interceptContinuation, когда исходное продолжение завершается и больше не будет использоваться. Эта функция вызывается только если interceptContinuation вернула другой экземпляр продолжения, отличный от того, с которым она была вызвана.

open fun releaseInterceptedContinuation(
    continuation: Continuation<*>)

Расширяющие функции

Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

getPolymorphicElement

Возвращает текущий элемент, если он связан с заданным ключом полиморфным образом или null в противном случае. Этот метод возвращает ненулевое значение, если либо Element.key равен заданному ключу, или если ключ связан с Element.key через AbstractCoroutineContextKey. См. AbstractCoroutineContextKey для примера использования.

fun <E : Element> Element.getPolymorphicElement(
    key: Key<E>
): E?
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)

minusPolymorphicKey

Возвращает пустой контекст сопрограммы, если элемент связан с заданным ключом полиморфным образом или null в противном случае. Этот метод возвращает пустой контекст, если либо Element.key равен заданному ключу, или если ключ связан с Element.key через AbstractCoroutineContextKey. См. AbstractCoroutineContextKey для примера использования.

fun Element.minusPolymorphicKey(
    key: Key<*>
): CoroutineContext

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines/-continuation-interceptor/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API