Compare commits

...

9 Commits

9 changed files with 31 additions and 23 deletions

View File

@@ -1,5 +1,13 @@
# Changelog # Changelog
## 0.24.7
* `Versions`:
* `SQLite`: `3.49.0.0` -> `3.49.1.0`
* `Repos`:
* `Cache`:
* Fix of `FullKeyValueCacheRepo` fields usage
## 0.24.6 ## 0.24.6
* `Versions`: * `Versions`:

View File

@@ -15,5 +15,5 @@ crypto_js_version=4.1.1
# Project data # Project data
group=dev.inmo group=dev.inmo
version=0.24.6 version=0.24.7
android_code_version=286 android_code_version=287

View File

@@ -10,7 +10,7 @@ jb-compose = "1.7.3"
jb-exposed = "0.59.0" jb-exposed = "0.59.0"
jb-dokka = "2.0.0" jb-dokka = "2.0.0"
sqlite = "3.49.0.0" sqlite = "3.49.1.0"
korlibs = "5.4.0" korlibs = "5.4.0"
uuid = "0.8.4" uuid = "0.8.4"
@@ -23,7 +23,7 @@ koin = "4.0.2"
okio = "3.10.2" okio = "3.10.2"
ksp = "2.1.10-1.0.29" ksp = "2.1.10-1.0.30"
kotlin-poet = "1.18.1" kotlin-poet = "1.18.1"
versions = "0.51.0" versions = "0.51.0"

View File

@@ -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,

View File

@@ -17,7 +17,7 @@ import kotlinx.coroutines.flow.*
open class FullReadKeyValueCacheRepo<Key,Value>( open class FullReadKeyValueCacheRepo<Key,Value>(
protected open val parentRepo: ReadKeyValueRepo<Key, Value>, protected open val parentRepo: ReadKeyValueRepo<Key, Value>,
protected open val kvCache: KeyValueRepo<Key, Value>, protected open val kvCache: KeyValueRepo<Key, Value>,
protected val locker: SmartRWLocker = SmartRWLocker() protected open val locker: SmartRWLocker = SmartRWLocker()
) : ReadKeyValueRepo<Key, Value>, FullCacheRepo { ) : ReadKeyValueRepo<Key, Value>, FullCacheRepo {
protected suspend inline fun <T> doOrTakeAndActualize( protected suspend inline fun <T> doOrTakeAndActualize(
action: KeyValueRepo<Key, Value>.() -> Optional<T>, action: KeyValueRepo<Key, Value>.() -> Optional<T>,
@@ -127,10 +127,10 @@ fun <Key, Value> WriteKeyValueRepo<Key, Value>.caching(
open class FullKeyValueCacheRepo<Key,Value>( open class FullKeyValueCacheRepo<Key,Value>(
override val parentRepo: KeyValueRepo<Key, Value>, override val parentRepo: KeyValueRepo<Key, Value>,
kvCache: KeyValueRepo<Key, Value>, override val kvCache: KeyValueRepo<Key, 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),
) : //FullWriteKeyValueCacheRepo<Key,Value>(parentRepo, kvCache, scope), ) : //FullWriteKeyValueCacheRepo<Key,Value>(parentRepo, kvCache, scope),
KeyValueRepo<Key,Value>, KeyValueRepo<Key,Value>,
WriteKeyValueRepo<Key,Value> by parentRepo, WriteKeyValueRepo<Key,Value> by parentRepo,

View File

@@ -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 {

View File

@@ -17,7 +17,7 @@ import kotlinx.coroutines.Dispatchers
open class DirectFullReadCRUDCacheRepo<ObjectType, IdType>( open class DirectFullReadCRUDCacheRepo<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>, DirectFullCacheRepo { ) : ReadCRUDRepo<ObjectType, IdType>, DirectFullCacheRepo {
protected open suspend fun actualizeAll() { protected open suspend fun actualizeAll() {
@@ -61,10 +61,10 @@ fun <ObjectType, IdType> ReadCRUDRepo<ObjectType, IdType>.directlyCached(
open class DirectFullCRUDCacheRepo<ObjectType, IdType, InputValueType>( open class DirectFullCRUDCacheRepo<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 idGetter: (ObjectType) -> IdType
) : DirectFullReadCRUDCacheRepo<ObjectType, IdType>( ) : DirectFullReadCRUDCacheRepo<ObjectType, IdType>(
parentRepo, parentRepo,

View File

@@ -20,7 +20,7 @@ import kotlinx.coroutines.flow.onEach
open class DirectFullReadKeyValueCacheRepo<Key, Value>( open class DirectFullReadKeyValueCacheRepo<Key, Value>(
protected open val parentRepo: ReadKeyValueRepo<Key, Value>, protected open val parentRepo: ReadKeyValueRepo<Key, Value>,
protected open val kvCache: KeyValueRepo<Key, Value>, protected open val kvCache: KeyValueRepo<Key, Value>,
protected val locker: SmartRWLocker = SmartRWLocker() protected open val locker: SmartRWLocker = SmartRWLocker()
) : DirectFullCacheRepo, ReadKeyValueRepo<Key, Value> { ) : DirectFullCacheRepo, ReadKeyValueRepo<Key, Value> {
protected open suspend fun actualizeAll() { protected open suspend fun actualizeAll() {
kvCache.actualizeAll(parentRepo, locker) kvCache.actualizeAll(parentRepo, locker)
@@ -102,10 +102,10 @@ fun <Key, Value> WriteKeyValueRepo<Key, Value>.directlyCached(
open class DirectFullKeyValueCacheRepo<Key, Value>( open class DirectFullKeyValueCacheRepo<Key, Value>(
override val parentRepo: KeyValueRepo<Key, Value>, override val parentRepo: KeyValueRepo<Key, Value>,
kvCache: KeyValueRepo<Key, Value>, override val kvCache: KeyValueRepo<Key, 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),
) : DirectFullCacheRepo, ) : DirectFullCacheRepo,
KeyValueRepo<Key, Value> , KeyValueRepo<Key, Value> ,
WriteKeyValueRepo<Key, Value> by DirectFullWriteKeyValueCacheRepo( WriteKeyValueRepo<Key, Value> by DirectFullWriteKeyValueCacheRepo(

View File

@@ -17,7 +17,7 @@ import kotlinx.coroutines.flow.*
open class DirectFullReadKeyValuesCacheRepo<Key,Value>( open class DirectFullReadKeyValuesCacheRepo<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>, DirectFullCacheRepo { ) : ReadKeyValuesRepo<Key, Value>, DirectFullCacheRepo {
protected open suspend fun actualizeKey(k: Key) { protected open suspend fun actualizeKey(k: Key) {
kvCache.actualizeAll(locker = locker, clearMode = ActualizeAllClearMode.Never) { kvCache.actualizeAll(locker = locker, clearMode = ActualizeAllClearMode.Never) {
@@ -136,10 +136,10 @@ fun <Key, Value> WriteKeyValuesRepo<Key, Value>.directlyCached(
open class DirectFullKeyValuesCacheRepo<Key,Value>( open class DirectFullKeyValuesCacheRepo<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>,
DirectFullReadKeyValuesCacheRepo<Key, Value>(parentRepo, kvCache, locker), DirectFullReadKeyValuesCacheRepo<Key, Value>(parentRepo, kvCache, locker),
WriteKeyValuesRepo<Key, Value> by parentRepo { WriteKeyValuesRepo<Key, Value> by parentRepo {