From d69fee1732b227def5fb5ce41ba1339b035aeb02 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 14 Mar 2025 16:06:36 +0600 Subject: [PATCH] add @OverrideRequireManualInvalidation to all invalidates supposed to be called in init block --- .../OverrideRequireManualInvalidation.kt | 14 ++++++++++++++ .../inmo/micro_utils/repos/cache/CRUDCacheRepo.kt | 4 ++++ .../micro_utils/repos/cache/KeyValueCacheRepo.kt | 2 ++ .../micro_utils/repos/cache/KeyValuesCacheRepo.kt | 2 ++ .../cache/fallback/crud/AutoRecacheReadCRUDRepo.kt | 2 ++ .../fallback/crud/AutoRecacheWriteCRUDRepo.kt | 2 ++ .../keyvalue/AutoRecacheReadKeyValueRepo.kt | 2 ++ .../keyvalue/AutoRecacheWriteKeyValueRepo.kt | 2 ++ .../keyvalues/AutoRecacheReadKeyValuesRepo.kt | 2 ++ .../keyvalues/AutoRecacheWriteKeyValuesRepo.kt | 2 ++ .../repos/cache/full/FullCRUDCacheRepo.kt | 2 ++ .../repos/cache/full/FullKeyValueCacheRepo.kt | 3 +++ .../repos/cache/full/FullKeyValuesCacheRepo.kt | 3 +++ .../cache/full/direct/DirectFullCRUDCacheRepo.kt | 4 ++++ .../full/direct/DirectFullKeyValueCacheRepo.kt | 4 ++++ .../full/direct/DirectFullKeyValuesCacheRepo.kt | 4 ++++ 16 files changed, 54 insertions(+) create mode 100644 repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/annotations/OverrideRequireManualInvalidation.kt diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/annotations/OverrideRequireManualInvalidation.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/annotations/OverrideRequireManualInvalidation.kt new file mode 100644 index 00000000000..61b84cc6701 --- /dev/null +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/annotations/OverrideRequireManualInvalidation.kt @@ -0,0 +1,14 @@ +package dev.inmo.micro_utils.repos.annotations + + +@RequiresOptIn( + "Overriding of this invalidate message requires manual launching of invalidation on class initialization process", + RequiresOptIn.Level.WARNING +) +@Target( + AnnotationTarget.CONSTRUCTOR, + AnnotationTarget.FIELD, + AnnotationTarget.PROPERTY, + AnnotationTarget.FUNCTION, +) +annotation class OverrideRequireManualInvalidation \ No newline at end of file diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/CRUDCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/CRUDCacheRepo.kt index 372bff67823..86a1a9c612c 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/CRUDCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/CRUDCacheRepo.kt @@ -4,6 +4,7 @@ import dev.inmo.micro_utils.coroutines.SmartRWLocker import dev.inmo.micro_utils.coroutines.withReadAcquire import dev.inmo.micro_utils.coroutines.withWriteLock import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.cache.KVCache import dev.inmo.micro_utils.repos.cache.util.ActualizeAllClearMode import dev.inmo.micro_utils.repos.cache.util.actualizeAll @@ -39,6 +40,7 @@ open class ReadCRUDCacheRepo( kvCache.contains(id) } || parentRepo.contains(id) + @OverrideRequireManualInvalidation override suspend fun invalidate() = locker.withWriteLock { kvCache.clear() } @@ -117,6 +119,7 @@ open class WriteCRUDCacheRepo( return created } + @OverrideRequireManualInvalidation override suspend fun invalidate() = locker.withWriteLock { kvCache.clear() } @@ -150,6 +153,7 @@ WriteCRUDRepo by WriteCRUDCacheRepo( idGetter ), CRUDRepo { + @OverrideRequireManualInvalidation override suspend fun invalidate() = kvCache.actualizeAll(parentRepo, locker = locker) } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValueCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValueCacheRepo.kt index 02148900f93..5feb23a91a5 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValueCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValueCacheRepo.kt @@ -5,6 +5,7 @@ import dev.inmo.micro_utils.coroutines.withReadAcquire import dev.inmo.micro_utils.coroutines.withWriteLock import dev.inmo.micro_utils.pagination.* import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.cache.KVCache import dev.inmo.micro_utils.repos.cache.util.actualizeAll import kotlinx.coroutines.CoroutineScope @@ -49,6 +50,7 @@ open class ReadKeyValueCacheRepo( } } + @OverrideRequireManualInvalidation override suspend fun invalidate() = kvCache.actualizeAll(parentRepo, locker = locker) } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValuesCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValuesCacheRepo.kt index 98c064b9c4c..a27e874f677 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValuesCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/KeyValuesCacheRepo.kt @@ -6,6 +6,7 @@ import dev.inmo.micro_utils.coroutines.withWriteLock import dev.inmo.micro_utils.pagination.* import dev.inmo.micro_utils.pagination.utils.* import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.cache.KVCache import dev.inmo.micro_utils.repos.cache.util.actualizeAll import kotlinx.coroutines.CoroutineScope @@ -48,6 +49,7 @@ open class ReadKeyValuesCacheRepo( kvCache.contains(k) } || parentRepo.contains(k) + @OverrideRequireManualInvalidation override suspend fun invalidate() = kvCache.actualizeAll(parentRepo, locker = locker) } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/crud/AutoRecacheReadCRUDRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/crud/AutoRecacheReadCRUDRepo.kt index 84f5035ceae..30067239bc3 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/crud/AutoRecacheReadCRUDRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/crud/AutoRecacheReadCRUDRepo.kt @@ -6,6 +6,7 @@ import dev.inmo.micro_utils.pagination.PaginationResult import dev.inmo.micro_utils.repos.KeyValueRepo import dev.inmo.micro_utils.repos.MapKeyValueRepo import dev.inmo.micro_utils.repos.ReadCRUDRepo +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.fallback.ActionWrapper import dev.inmo.micro_utils.repos.cache.util.actualizeAll import dev.inmo.micro_utils.repos.cache.FallbackCacheRepo @@ -90,6 +91,7 @@ open class AutoRecacheReadCRUDRepo( kvCache.set(idGetter(it), it) } ?: kvCache.get(id) + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/crud/AutoRecacheWriteCRUDRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/crud/AutoRecacheWriteCRUDRepo.kt index 762b98b5f12..58e335dc05f 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/crud/AutoRecacheWriteCRUDRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/crud/AutoRecacheWriteCRUDRepo.kt @@ -2,6 +2,7 @@ package dev.inmo.micro_utils.repos.cache.fallback.crud import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.FallbackCacheRepo import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow @@ -53,6 +54,7 @@ open class AutoRecacheWriteCRUDRepo( kvCache.set(idGetter(it), it) } + @OverrideRequireManualInvalidation override suspend fun invalidate() { kvCache.clear() } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalue/AutoRecacheReadKeyValueRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalue/AutoRecacheReadKeyValueRepo.kt index e1aac600768..214a84e855c 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalue/AutoRecacheReadKeyValueRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalue/AutoRecacheReadKeyValueRepo.kt @@ -6,6 +6,7 @@ import dev.inmo.micro_utils.pagination.PaginationResult import dev.inmo.micro_utils.repos.KeyValueRepo import dev.inmo.micro_utils.repos.MapKeyValueRepo import dev.inmo.micro_utils.repos.ReadKeyValueRepo +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.fallback.ActionWrapper import dev.inmo.micro_utils.repos.cache.util.actualizeAll import dev.inmo.micro_utils.repos.cache.FallbackCacheRepo @@ -100,6 +101,7 @@ open class AutoRecacheReadKeyValueRepo( originalRepo.keys(v, pagination, reversed) }.getOrElse { kvCache.keys(v, pagination, reversed) } + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalue/AutoRecacheWriteKeyValueRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalue/AutoRecacheWriteKeyValueRepo.kt index 0bea2516d57..3a498ceb244 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalue/AutoRecacheWriteKeyValueRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalue/AutoRecacheWriteKeyValueRepo.kt @@ -2,6 +2,7 @@ package dev.inmo.micro_utils.repos.cache.fallback.keyvalue import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.FallbackCacheRepo import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow @@ -44,6 +45,7 @@ open class AutoRecacheWriteKeyValueRepo( kvCache.set(toSet) } + @OverrideRequireManualInvalidation override suspend fun invalidate() { kvCache.clear() } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalues/AutoRecacheReadKeyValuesRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalues/AutoRecacheReadKeyValuesRepo.kt index c0795f27819..3ab5d114912 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalues/AutoRecacheReadKeyValuesRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalues/AutoRecacheReadKeyValuesRepo.kt @@ -13,6 +13,7 @@ import dev.inmo.micro_utils.pagination.utils.paginate import dev.inmo.micro_utils.repos.KeyValueRepo import dev.inmo.micro_utils.repos.MapKeyValueRepo import dev.inmo.micro_utils.repos.ReadKeyValuesRepo +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.fallback.ActionWrapper import dev.inmo.micro_utils.repos.cache.util.actualizeAll import dev.inmo.micro_utils.repos.cache.FallbackCacheRepo @@ -140,6 +141,7 @@ open class AutoRecacheReadKeyValuesRepo( }) ?: (kvCache.get(k) ?.contains(v) == true) } + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalues/AutoRecacheWriteKeyValuesRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalues/AutoRecacheWriteKeyValuesRepo.kt index 14a4902c729..380b6255502 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalues/AutoRecacheWriteKeyValuesRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/fallback/keyvalues/AutoRecacheWriteKeyValuesRepo.kt @@ -3,6 +3,7 @@ package dev.inmo.micro_utils.repos.cache.fallback.keyvalues import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions import dev.inmo.micro_utils.pagination.utils.doForAllWithNextPaging import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.FallbackCacheRepo import dev.inmo.micro_utils.repos.pagination.maxPagePagination import kotlinx.coroutines.CoroutineScope @@ -89,6 +90,7 @@ open class AutoRecacheWriteKeyValuesRepo( } } + @OverrideRequireManualInvalidation override suspend fun invalidate() { kvCache.clear() } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullCRUDCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullCRUDCacheRepo.kt index d30ede0d633..7172b8c5f5c 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullCRUDCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullCRUDCacheRepo.kt @@ -8,6 +8,7 @@ import dev.inmo.micro_utils.coroutines.withWriteLock import dev.inmo.micro_utils.pagination.Pagination import dev.inmo.micro_utils.pagination.PaginationResult import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.* import dev.inmo.micro_utils.repos.cache.util.ActualizeAllClearMode import dev.inmo.micro_utils.repos.cache.util.actualizeAll @@ -133,6 +134,7 @@ open class FullCRUDCacheRepo( locker.unlockWrite() } } + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullKeyValueCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullKeyValueCacheRepo.kt index 470430ae055..50fc5b77aec 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullKeyValueCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullKeyValueCacheRepo.kt @@ -8,6 +8,7 @@ import dev.inmo.micro_utils.coroutines.withWriteLock import dev.inmo.micro_utils.pagination.Pagination import dev.inmo.micro_utils.pagination.PaginationResult import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.util.ActualizeAllClearMode import dev.inmo.micro_utils.repos.cache.util.actualizeAll import kotlinx.coroutines.CoroutineScope @@ -86,6 +87,7 @@ open class FullReadKeyValueCacheRepo( { if (it.results.isNotEmpty()) actualizeAll() } ) + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } @@ -160,6 +162,7 @@ open class FullKeyValueCacheRepo( locker.unlockWrite() } } + @OverrideRequireManualInvalidation override suspend fun invalidate() { kvCache.actualizeAll(parentRepo, locker) } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullKeyValuesCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullKeyValuesCacheRepo.kt index b4856684916..524afa732c8 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullKeyValuesCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/FullKeyValuesCacheRepo.kt @@ -8,6 +8,7 @@ import dev.inmo.micro_utils.coroutines.withWriteLock import dev.inmo.micro_utils.pagination.* import dev.inmo.micro_utils.pagination.utils.* import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.util.ActualizeAllClearMode import dev.inmo.micro_utils.repos.cache.util.actualizeAll import dev.inmo.micro_utils.repos.pagination.maxPagePagination @@ -153,6 +154,7 @@ open class FullReadKeyValuesCacheRepo( { if (it.results.isNotEmpty()) actualizeAll() } ) + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } @@ -235,6 +237,7 @@ open class FullKeyValuesCacheRepo( locker.unlockWrite() } } + @OverrideRequireManualInvalidation override suspend fun invalidate() { kvCache.actualizeAll(parentRepo, locker = locker) } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullCRUDCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullCRUDCacheRepo.kt index d371d671f9d..29e536f1b60 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullCRUDCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullCRUDCacheRepo.kt @@ -1,11 +1,13 @@ package dev.inmo.micro_utils.repos.cache.full.direct +import dev.inmo.micro_utils.common.Warning import dev.inmo.micro_utils.coroutines.SmartRWLocker import dev.inmo.micro_utils.coroutines.launchLoggingDropExceptions import dev.inmo.micro_utils.coroutines.withReadAcquire import dev.inmo.micro_utils.pagination.Pagination import dev.inmo.micro_utils.pagination.PaginationResult import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.* import dev.inmo.micro_utils.repos.cache.util.actualizeAll import kotlinx.coroutines.CoroutineScope @@ -96,6 +98,8 @@ open class DirectFullCRUDCacheRepo( locker.unlockWrite() } } + + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullKeyValueCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullKeyValueCacheRepo.kt index 1da59594bf8..099d2b71d03 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullKeyValueCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullKeyValueCacheRepo.kt @@ -7,6 +7,7 @@ import dev.inmo.micro_utils.coroutines.withWriteLock import dev.inmo.micro_utils.pagination.Pagination import dev.inmo.micro_utils.pagination.PaginationResult import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.full.FullKeyValueCacheRepo import dev.inmo.micro_utils.repos.cache.full.FullReadKeyValueCacheRepo import dev.inmo.micro_utils.repos.cache.full.FullWriteKeyValueCacheRepo @@ -54,6 +55,7 @@ open class DirectFullReadKeyValueCacheRepo( kvCache.keys(v, pagination, reversed) } + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } @@ -86,6 +88,7 @@ open class DirectFullWriteKeyValueCacheRepo( } }.launchIn(scope) + @OverrideRequireManualInvalidation override suspend fun invalidate() { locker.withWriteLock { kvCache.clear() @@ -135,6 +138,7 @@ open class DirectFullKeyValueCacheRepo( locker.unlockWrite() } } + @OverrideRequireManualInvalidation override suspend fun invalidate() { kvCache.actualizeAll(parentRepo, locker) } diff --git a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullKeyValuesCacheRepo.kt b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullKeyValuesCacheRepo.kt index a70543c7dc0..c4d3d827446 100644 --- a/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullKeyValuesCacheRepo.kt +++ b/repos/cache/src/commonMain/kotlin/dev/inmo/micro_utils/repos/cache/full/direct/DirectFullKeyValuesCacheRepo.kt @@ -8,6 +8,7 @@ import dev.inmo.micro_utils.coroutines.withWriteLock import dev.inmo.micro_utils.pagination.* import dev.inmo.micro_utils.pagination.utils.* import dev.inmo.micro_utils.repos.* +import dev.inmo.micro_utils.repos.annotations.OverrideRequireManualInvalidation import dev.inmo.micro_utils.repos.cache.util.ActualizeAllClearMode import dev.inmo.micro_utils.repos.cache.util.actualizeAll import kotlinx.coroutines.CoroutineScope @@ -88,6 +89,7 @@ open class DirectFullReadKeyValuesCacheRepo( return result ?: emptyPaginationResult() } + @OverrideRequireManualInvalidation override suspend fun invalidate() { actualizeAll() } @@ -121,6 +123,7 @@ open class DirectFullWriteKeyValuesCacheRepo( } }.launchIn(scope) + @OverrideRequireManualInvalidation override suspend fun invalidate() { locker.withWriteLock { kvCache.clear() @@ -170,6 +173,7 @@ open class DirectFullKeyValuesCacheRepo( locker.unlockWrite() } } + @OverrideRequireManualInvalidation override suspend fun invalidate() { kvCache.actualizeAll(parentRepo, locker = locker) }