Default States Manager
class DefaultStatesManager<T : State>(repo: DefaultStatesManagerRepo<T>, onContextsConflictResolver: suspend (T, T, T) -> Boolean) : StatesManager<T>
Content copied to clipboard
Parameters
repo
This repo will be used as repository for storing states. All operations with this repo will happen BEFORE any event will be sent to onChainStateUpdated, onStartChain or onEndChain. By default will be used InMemoryDefaultStatesManagerRepo or you may create custom DefaultStatesManagerRepo and pass as repo parameter
on Contexts Conflict Resolver
Receive old State, new one and the state currently placed on new State.context key. In case when this callback will returns true, the state placed on State.context of new will be replaced by new state by using endChain with that state
Constructors
DefaultStatesManager
Link copied to clipboard
fun <T : State> DefaultStatesManager(repo: DefaultStatesManagerRepo<T> = InMemoryDefaultStatesManagerRepo(), onContextsConflictResolver: suspend (T, T, T) -> Boolean = { _, _, _ -> true })
Content copied to clipboard
Functions
get Active States
Link copied to clipboard
start Chain
Link copied to clipboard
Starts chain with state as first State. May returns false in case of State.context of state is already busy by the other State
update
Link copied to clipboard
Must set current set using State.context
Properties
onChainStateUpdated
Link copied to clipboard
onEndChain
Link copied to clipboard
onStartChain
Link copied to clipboard