CoroutineContext

interface CoroutineContext (source)

Platform and version requirements: Kotlin 1.1

Persistent context for the coroutine. It is an indexed set of Element instances. An indexed set is a mix between a set and a map. Every element in this set has a unique Key. Keys are compared by reference.

Types

Element

interface Element : CoroutineContext

An element of the CoroutineContext. An element of the coroutine context is a singleton context by itself.

Key

interface Key<E : Element>

Key for the elements of CoroutineContext. E is a type of element with this key. Keys in the context are compared by reference.

Functions

fold

abstract fun <R> fold(
    initial: R,
    operation: (R, Element) -> R
): R

Accumulates entries of this context starting with initial value and applying operation from left to right to current accumulator value and each element of this context.

get

abstract operator fun <E : Element> get(key: Key<E>): E?

Returns the element with the given key from this context or null. Keys are compared by reference, that is to get an element from the context the reference to its actual key object must be presented to this function.

minusKey

abstract fun minusKey(key: Key<*>): CoroutineContext

Returns a context containing elements from this context, but without an element with the specified key. Keys are compared by reference, that is to remove an element from the context the reference to its actual key object must be presented to this function.

plus

open operator fun plus(
    context: CoroutineContext
): CoroutineContext

Returns a context containing elements from this context and elements from other context. The elements from this context with the same key as in the other one are dropped.

Inherited Functions

equals

open operator fun equals(other: Any?): Boolean

Indicates whether some other object is "equal to" this one. Implementations must fulfil the following requirements:

hashCode

open fun hashCode(): Int

Returns a hash code value for the object. The general contract of hashCode is:

toString

open fun toString(): String

Returns a string representation of the object.

Inheritors

Element

interface Element : CoroutineContext

An element of the CoroutineContext. An element of the coroutine context is a singleton context by itself.

EmptyCoroutineContext

object EmptyCoroutineContext : CoroutineContext

An empty coroutine context.