mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-09-03 23:29:46 +00:00
add @OverrideRequireManualInvalidation to all invalidates supposed to be called in init block
This commit is contained in:
@@ -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
|
@@ -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<ObjectType, IdType>(
|
||||
kvCache.contains(id)
|
||||
} || parentRepo.contains(id)
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() = locker.withWriteLock {
|
||||
kvCache.clear()
|
||||
}
|
||||
@@ -117,6 +119,7 @@ open class WriteCRUDCacheRepo<ObjectType, IdType, InputValueType>(
|
||||
return created
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() = locker.withWriteLock {
|
||||
kvCache.clear()
|
||||
}
|
||||
@@ -150,6 +153,7 @@ WriteCRUDRepo<ObjectType, IdType, InputValueType> by WriteCRUDCacheRepo(
|
||||
idGetter
|
||||
),
|
||||
CRUDRepo<ObjectType, IdType, InputValueType> {
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() = kvCache.actualizeAll(parentRepo, locker = locker)
|
||||
}
|
||||
|
||||
|
@@ -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<Key,Value>(
|
||||
}
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() = kvCache.actualizeAll(parentRepo, locker = locker)
|
||||
}
|
||||
|
||||
|
@@ -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<Key,Value>(
|
||||
kvCache.contains(k)
|
||||
} || parentRepo.contains(k)
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() = kvCache.actualizeAll(parentRepo, locker = locker)
|
||||
}
|
||||
|
||||
|
@@ -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<RegisteredObject, Id>(
|
||||
kvCache.set(idGetter(it), it)
|
||||
} ?: kvCache.get(id)
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
|
@@ -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<RegisteredObject, Id, InputObject>(
|
||||
kvCache.set(idGetter(it), it)
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
kvCache.clear()
|
||||
}
|
||||
|
@@ -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<Id, RegisteredObject>(
|
||||
originalRepo.keys(v, pagination, reversed)
|
||||
}.getOrElse { kvCache.keys(v, pagination, reversed) }
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
|
@@ -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<Id, RegisteredObject>(
|
||||
kvCache.set(toSet)
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
kvCache.clear()
|
||||
}
|
||||
|
@@ -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<Id, RegisteredObject>(
|
||||
}) ?: (kvCache.get(k) ?.contains(v) == true)
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
|
@@ -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<Id, RegisteredObject>(
|
||||
}
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
kvCache.clear()
|
||||
}
|
||||
|
@@ -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<ObjectType, IdType, InputValueType>(
|
||||
locker.unlockWrite()
|
||||
}
|
||||
}
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
|
@@ -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<Key,Value>(
|
||||
{ if (it.results.isNotEmpty()) actualizeAll() }
|
||||
)
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
@@ -160,6 +162,7 @@ open class FullKeyValueCacheRepo<Key,Value>(
|
||||
locker.unlockWrite()
|
||||
}
|
||||
}
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
kvCache.actualizeAll(parentRepo, locker)
|
||||
}
|
||||
|
@@ -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<Key,Value>(
|
||||
{ if (it.results.isNotEmpty()) actualizeAll() }
|
||||
)
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
@@ -235,6 +237,7 @@ open class FullKeyValuesCacheRepo<Key,Value>(
|
||||
locker.unlockWrite()
|
||||
}
|
||||
}
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
kvCache.actualizeAll(parentRepo, locker = locker)
|
||||
}
|
||||
|
@@ -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<ObjectType, IdType, InputValueType>(
|
||||
locker.unlockWrite()
|
||||
}
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
|
@@ -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<Key, Value>(
|
||||
kvCache.keys(v, pagination, reversed)
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
@@ -86,6 +88,7 @@ open class DirectFullWriteKeyValueCacheRepo<Key, Value>(
|
||||
}
|
||||
}.launchIn(scope)
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
locker.withWriteLock {
|
||||
kvCache.clear()
|
||||
@@ -135,6 +138,7 @@ open class DirectFullKeyValueCacheRepo<Key, Value>(
|
||||
locker.unlockWrite()
|
||||
}
|
||||
}
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
kvCache.actualizeAll(parentRepo, locker)
|
||||
}
|
||||
|
@@ -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<Key,Value>(
|
||||
return result ?: emptyPaginationResult()
|
||||
}
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
actualizeAll()
|
||||
}
|
||||
@@ -121,6 +123,7 @@ open class DirectFullWriteKeyValuesCacheRepo<Key,Value>(
|
||||
}
|
||||
}.launchIn(scope)
|
||||
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
locker.withWriteLock {
|
||||
kvCache.clear()
|
||||
@@ -170,6 +173,7 @@ open class DirectFullKeyValuesCacheRepo<Key,Value>(
|
||||
locker.unlockWrite()
|
||||
}
|
||||
}
|
||||
@OverrideRequireManualInvalidation
|
||||
override suspend fun invalidate() {
|
||||
kvCache.actualizeAll(parentRepo, locker = locker)
|
||||
}
|
||||
|
Reference in New Issue
Block a user