ContainerDecorator

A decorator applying additional logic to a Container.

Parameters

STATE

The container's state type.

SIDE_EFFECT

The type of side effects posted by this container. Can be Nothing if this container never posts side effects.

Inheritors

Functions

Link copied to clipboard
open override fun cancel()

Cancels the container scope and all intents in progress.

Link copied to clipboard
open suspend override fun inlineOrbit(orbitIntent: suspend ContainerContext<STATE, SIDE_EFFECT>.() -> Unit)

Executes an orbit intent inline, circumventing orbit's dispatching. The intents are built in the ContainerHost using your chosen syntax.

Link copied to clipboard
open suspend override fun joinIntents()

Joins all in progress intents in the container. This suspends until all intents have completed.

Link copied to clipboard
open suspend override fun orbit(orbitIntent: suspend ContainerContext<STATE, SIDE_EFFECT>.() -> Unit): Job

Executes an orbit intent. The intents are built in the ContainerHost using your chosen syntax.

Properties

Link copied to clipboard

The wrapped container.

Link copied to clipboard
open override val settings: RealSettings

Settings that the container was set up with

Link copied to clipboard
open override val sideEffectFlow: Flow<SIDE_EFFECT>

A Flow of one-off side effects posted from Container. Caches side effects when there are no collectors. The size of the cache can be controlled via SettingsBuilder and determines if and when the orbit thread suspends when you post a side effect. The default is unlimited. You don't have to touch this unless you are posting many side effects which could result in OutOfMemoryError.

Link copied to clipboard
open override val stateFlow: StateFlow<STATE>

A StateFlow of state updates. Emits the latest state upon subscription and serves only distinct values (through equality comparison).