From c914f8c44a03f3c613c2589f9ef254015664b3d2 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 9 Nov 2020 00:51:08 +0600 Subject: [PATCH] fixes --- .../dev/inmo/micro_utils/repos/MapCRUDRepo.kt | 24 ++++++++----------- .../repos/MapOneToManyKeyValueRepo.kt | 13 ++++------ 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapCRUDRepo.kt b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapCRUDRepo.kt index a2194f0b96a..34a77aea72a 100644 --- a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapCRUDRepo.kt +++ b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapCRUDRepo.kt @@ -1,8 +1,7 @@ package dev.inmo.micro_utils.repos -import dev.inmo.micro_utils.coroutines.BroadcastFlow import dev.inmo.micro_utils.pagination.* -import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.* class ReadMapCRUDRepo( private val map: Map = emptyMap() @@ -26,15 +25,12 @@ class ReadMapCRUDRepo( abstract class WriteMapCRUDRepo( private val map: MutableMap = mutableMapOf() ) : WriteStandardCRUDRepo { - private val _newObjectsFlow: BroadcastFlow = BroadcastFlow() - override val newObjectsFlow: Flow - get() = _newObjectsFlow - private val _updatedObjectsFlow: BroadcastFlow = BroadcastFlow() - override val updatedObjectsFlow: Flow - get() = _updatedObjectsFlow - private val _deletedObjectsIdsFlow: BroadcastFlow = BroadcastFlow() - override val deletedObjectsIdsFlow: Flow - get() = _deletedObjectsIdsFlow + private val _newObjectsFlow: MutableSharedFlow = MutableSharedFlow() + override val newObjectsFlow: Flow = _newObjectsFlow.asSharedFlow() + private val _updatedObjectsFlow: MutableSharedFlow = MutableSharedFlow() + override val updatedObjectsFlow: Flow = _updatedObjectsFlow.asSharedFlow() + private val _deletedObjectsIdsFlow: MutableSharedFlow = MutableSharedFlow() + override val deletedObjectsIdsFlow: Flow = _deletedObjectsIdsFlow.asSharedFlow() protected abstract suspend fun updateObject(newValue: InputValueType, id: IdType, old: ObjectType): ObjectType protected abstract suspend fun createObject(newValue: InputValueType): Pair @@ -44,7 +40,7 @@ abstract class WriteMapCRUDRepo( val (id, newObject) = createObject(it) map[id] = newObject newObject.also { _ -> - _newObjectsFlow.send(newObject) + _newObjectsFlow.emit(newObject) } } } @@ -54,7 +50,7 @@ abstract class WriteMapCRUDRepo( return newValue.also { map[id] = it - _updatedObjectsFlow.send(it) + _updatedObjectsFlow.emit(it) } } @@ -64,7 +60,7 @@ abstract class WriteMapCRUDRepo( override suspend fun deleteById(ids: List) { ids.forEach { - map.remove(it) ?.also { _ -> _deletedObjectsIdsFlow.send(it) } + map.remove(it) ?.also { _ -> _deletedObjectsIdsFlow.emit(it) } } } diff --git a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapOneToManyKeyValueRepo.kt b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapOneToManyKeyValueRepo.kt index bf8758ac1ff..485210e40ad 100644 --- a/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapOneToManyKeyValueRepo.kt +++ b/repos/inmemory/src/commonMain/kotlin/dev/inmo/micro_utils/repos/MapOneToManyKeyValueRepo.kt @@ -1,11 +1,9 @@ package dev.inmo.micro_utils.repos -import dev.inmo.micro_utils.coroutines.BroadcastFlow import dev.inmo.micro_utils.pagination.* import dev.inmo.micro_utils.pagination.utils.paginate import dev.inmo.micro_utils.pagination.utils.reverse -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.* class MapReadOneToManyKeyValueRepo( private val map: Map> = emptyMap() @@ -47,14 +45,11 @@ class MapWriteOneToManyKeyValueRepo( private val map: MutableMap> = mutableMapOf() ) : WriteOneToManyKeyValueRepo { private val _onNewValue: MutableSharedFlow> = MutableSharedFlow() - override val onNewValue: Flow> - get() = _onNewValue + override val onNewValue: Flow> = _onNewValue.asSharedFlow() private val _onValueRemoved: MutableSharedFlow> = MutableSharedFlow() - override val onValueRemoved: Flow> - get() = _onValueRemoved + override val onValueRemoved: Flow> = _onValueRemoved.asSharedFlow() private val _onDataCleared: MutableSharedFlow = MutableSharedFlow() - override val onDataCleared: Flow - get() = _onDataCleared + override val onDataCleared: Flow = _onDataCleared.asSharedFlow() override suspend fun add(toAdd: Map>) { toAdd.keys.forEach { k ->