mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-09-15 05:19:23 +00:00
more fixes to god of fixes
This commit is contained in:
@@ -17,7 +17,7 @@ import kotlinx.coroutines.Dispatchers
|
|||||||
open class FullReadCRUDCacheRepo<ObjectType, IdType>(
|
open class FullReadCRUDCacheRepo<ObjectType, IdType>(
|
||||||
protected open val parentRepo: ReadCRUDRepo<ObjectType, IdType>,
|
protected open val parentRepo: ReadCRUDRepo<ObjectType, IdType>,
|
||||||
protected open val kvCache: KeyValueRepo<IdType, ObjectType>,
|
protected open val kvCache: KeyValueRepo<IdType, ObjectType>,
|
||||||
protected val locker: SmartRWLocker = SmartRWLocker(),
|
protected open val locker: SmartRWLocker = SmartRWLocker(),
|
||||||
protected open val idGetter: (ObjectType) -> IdType
|
protected open val idGetter: (ObjectType) -> IdType
|
||||||
) : ReadCRUDRepo<ObjectType, IdType>, FullCacheRepo {
|
) : ReadCRUDRepo<ObjectType, IdType>, FullCacheRepo {
|
||||||
protected suspend inline fun <T> doOrTakeAndActualize(
|
protected suspend inline fun <T> doOrTakeAndActualize(
|
||||||
@@ -95,11 +95,11 @@ fun <ObjectType, IdType> ReadCRUDRepo<ObjectType, IdType>.cached(
|
|||||||
|
|
||||||
open class FullCRUDCacheRepo<ObjectType, IdType, InputValueType>(
|
open class FullCRUDCacheRepo<ObjectType, IdType, InputValueType>(
|
||||||
override val parentRepo: CRUDRepo<ObjectType, IdType, InputValueType>,
|
override val parentRepo: CRUDRepo<ObjectType, IdType, InputValueType>,
|
||||||
kvCache: KeyValueRepo<IdType, ObjectType>,
|
override val kvCache: KeyValueRepo<IdType, ObjectType>,
|
||||||
scope: CoroutineScope = CoroutineScope(Dispatchers.Default),
|
scope: CoroutineScope = CoroutineScope(Dispatchers.Default),
|
||||||
skipStartInvalidate: Boolean = false,
|
skipStartInvalidate: Boolean = false,
|
||||||
locker: SmartRWLocker = SmartRWLocker(writeIsLocked = !skipStartInvalidate),
|
override val locker: SmartRWLocker = SmartRWLocker(writeIsLocked = !skipStartInvalidate),
|
||||||
idGetter: (ObjectType) -> IdType
|
override val idGetter: (ObjectType) -> IdType
|
||||||
) : FullReadCRUDCacheRepo<ObjectType, IdType>(
|
) : FullReadCRUDCacheRepo<ObjectType, IdType>(
|
||||||
parentRepo,
|
parentRepo,
|
||||||
kvCache,
|
kvCache,
|
||||||
|
@@ -18,7 +18,7 @@ import kotlinx.coroutines.flow.*
|
|||||||
open class FullReadKeyValuesCacheRepo<Key,Value>(
|
open class FullReadKeyValuesCacheRepo<Key,Value>(
|
||||||
protected open val parentRepo: ReadKeyValuesRepo<Key, Value>,
|
protected open val parentRepo: ReadKeyValuesRepo<Key, Value>,
|
||||||
protected open val kvCache: KeyValueRepo<Key, List<Value>>,
|
protected open val kvCache: KeyValueRepo<Key, List<Value>>,
|
||||||
protected val locker: SmartRWLocker = SmartRWLocker(),
|
protected open val locker: SmartRWLocker = SmartRWLocker(),
|
||||||
) : ReadKeyValuesRepo<Key, Value>, FullCacheRepo {
|
) : ReadKeyValuesRepo<Key, Value>, FullCacheRepo {
|
||||||
protected suspend inline fun <T> doOrTakeAndActualize(
|
protected suspend inline fun <T> doOrTakeAndActualize(
|
||||||
action: KeyValueRepo<Key, List<Value>>.() -> Optional<T>,
|
action: KeyValueRepo<Key, List<Value>>.() -> Optional<T>,
|
||||||
@@ -201,10 +201,10 @@ fun <Key, Value> WriteKeyValuesRepo<Key, Value>.caching(
|
|||||||
|
|
||||||
open class FullKeyValuesCacheRepo<Key,Value>(
|
open class FullKeyValuesCacheRepo<Key,Value>(
|
||||||
override val parentRepo: KeyValuesRepo<Key, Value>,
|
override val parentRepo: KeyValuesRepo<Key, Value>,
|
||||||
kvCache: KeyValueRepo<Key, List<Value>>,
|
override val kvCache: KeyValueRepo<Key, List<Value>>,
|
||||||
scope: CoroutineScope = CoroutineScope(Dispatchers.Default),
|
scope: CoroutineScope = CoroutineScope(Dispatchers.Default),
|
||||||
skipStartInvalidate: Boolean = false,
|
skipStartInvalidate: Boolean = false,
|
||||||
locker: SmartRWLocker = SmartRWLocker(writeIsLocked = !skipStartInvalidate),
|
override val locker: SmartRWLocker = SmartRWLocker(writeIsLocked = !skipStartInvalidate),
|
||||||
) : KeyValuesRepo<Key, Value>,
|
) : KeyValuesRepo<Key, Value>,
|
||||||
FullReadKeyValuesCacheRepo<Key, Value>(parentRepo, kvCache, locker),
|
FullReadKeyValuesCacheRepo<Key, Value>(parentRepo, kvCache, locker),
|
||||||
WriteKeyValuesRepo<Key, Value> by parentRepo {
|
WriteKeyValuesRepo<Key, Value> by parentRepo {
|
||||||
|
Reference in New Issue
Block a user