commonMain.com.arkivanov.mvikotlin.main.store.DefaultStore.kt Maven / Gradle / Ivy
package com.arkivanov.mvikotlin.main.store
import com.arkivanov.mvikotlin.core.store.Bootstrapper
import com.arkivanov.mvikotlin.core.store.Executor
import com.arkivanov.mvikotlin.core.store.Reducer
import com.arkivanov.mvikotlin.core.store.Store
import com.arkivanov.mvikotlin.core.utils.assertOnMainThread
import com.arkivanov.mvikotlin.rx.Disposable
import com.arkivanov.mvikotlin.rx.Observer
import com.arkivanov.mvikotlin.rx.internal.BehaviorSubject
import com.arkivanov.mvikotlin.rx.internal.PublishSubject
import com.arkivanov.mvikotlin.rx.observer
import com.arkivanov.mvikotlin.utils.internal.atomic
internal class DefaultStore(
initialState: State,
private val bootstrapper: Bootstrapper?,
private val executor: Executor,
private val reducer: Reducer
) : Store {
private val intentSubject = PublishSubject()
private val stateSubject = BehaviorSubject(initialState)
override val state: State get() = stateSubject.value
override val isDisposed: Boolean get() = !stateSubject.isActive
private val labelSubject = PublishSubject
© 2015 - 2025 Weber Informatics LLC | Privacy Policy