Auto Recache Read Key Values Repo
open class AutoRecacheReadKeyValuesRepo<Id, RegisteredObject>(originalRepo: ReadKeyValuesRepo<Id, RegisteredObject>, scope: CoroutineScope, kvCache: KeyValueRepo<Id, List<RegisteredObject>> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds, actionWrapper: ActionWrapper = ActionWrapper.Direct) : ReadKeyValuesRepo<Id, RegisteredObject> , FallbackCacheRepo
Inheritors
Constructors
Link copied to clipboard
constructor(originalRepo: ReadKeyValuesRepo<Id, RegisteredObject>, scope: CoroutineScope, originalCallTimeoutMillis: Long, kvCache: KeyValueRepo<Id, List<RegisteredObject>> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds)
constructor(originalRepo: ReadKeyValuesRepo<Id, RegisteredObject>, scope: CoroutineScope, kvCache: KeyValueRepo<Id, List<RegisteredObject>> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds, actionWrapper: ActionWrapper = ActionWrapper.Direct)
Functions
Link copied to clipboard
Link copied to clipboard
fun <Key, Value> ReadKeyValuesRepo<Key, Value>.cached(kvCache: KVCache<Key, List<Value>>, locker: SmartRWLocker = SmartRWLocker()): ReadKeyValuesCacheRepo<Key, Value>
fun <Key, Value> ReadKeyValuesRepo<Key, Value>.cached(kvCache: KeyValueRepo<Key, List<Value>>, locker: SmartRWLocker = SmartRWLocker()): FullReadKeyValuesCacheRepo<Key, Value>
Link copied to clipboard
open suspend override fun get(k: Id, pagination: Pagination, reversed: Boolean): PaginationResult<RegisteredObject>
Link copied to clipboard
Link copied to clipboard
open suspend override fun keys(v: RegisteredObject, pagination: Pagination, reversed: Boolean): PaginationResult<Id>
Link copied to clipboard
Link copied to clipboard
inline fun <FromKey, FromValue, ToKey, ToValue> ReadKeyValuesRepo<ToKey, ToValue>.withMapper(mapper: MapperRepo<FromKey, FromValue, ToKey, ToValue>): ReadKeyValuesRepo<FromKey, FromValue>
inline fun <FromKey, FromValue, ToKey, ToValue> ReadKeyValuesRepo<ToKey, ToValue>.withMapper(noinline keyFromToTo: suspend FromKey.() -> ToKey = { this as ToKey }, noinline valueFromToTo: suspend FromValue.() -> ToValue = { this as ToValue }, noinline keyToToFrom: suspend ToKey.() -> FromKey = { this as FromKey }, noinline valueToToFrom: suspend ToValue.() -> FromValue = { this as FromValue }): ReadKeyValuesRepo<FromKey, FromValue>