Auto Recache CRUDRepo
open class AutoRecacheCRUDRepo<RegisteredObject, Id, InputObject>(originalRepo: CRUDRepo<RegisteredObject, Id, InputObject>, scope: CoroutineScope, kvCache: KeyValueRepo<Id, RegisteredObject> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds, actionWrapper: ActionWrapper = ActionWrapper.Direct, idGetter: (RegisteredObject) -> Id) : AutoRecacheReadCRUDRepo<RegisteredObject, Id> , WriteCRUDRepo<RegisteredObject, Id, InputObject> , CRUDRepo<RegisteredObject, Id, InputObject>
Constructors
Link copied to clipboard
constructor(originalRepo: CRUDRepo<RegisteredObject, Id, InputObject>, scope: CoroutineScope, originalCallTimeoutMillis: Long, kvCache: KeyValueRepo<Id, RegisteredObject> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds, idGetter: (RegisteredObject) -> Id)
constructor(originalRepo: CRUDRepo<RegisteredObject, Id, InputObject>, scope: CoroutineScope, kvCache: KeyValueRepo<Id, RegisteredObject> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds, actionWrapper: ActionWrapper = ActionWrapper.Direct, idGetter: (RegisteredObject) -> Id)
Properties
Functions
Link copied to clipboard
Link copied to clipboard
fun <ObjectType, IdType> ReadCRUDRepo<ObjectType, IdType>.cached(kvCache: KVCache<IdType, ObjectType>, locker: SmartRWLocker = SmartRWLocker(), idGetter: (ObjectType) -> IdType): ReadCRUDCacheRepo<ObjectType, IdType>
fun <ObjectType, IdType, InputType> CRUDRepo<ObjectType, IdType, InputType>.cached(kvCache: KVCache<IdType, ObjectType>, scope: CoroutineScope, locker: SmartRWLocker = SmartRWLocker(), idGetter: (ObjectType) -> IdType): CRUDCacheRepo<ObjectType, IdType, InputType>
fun <ObjectType, IdType> ReadCRUDRepo<ObjectType, IdType>.cached(kvCache: KeyValueRepo<IdType, ObjectType>, locker: SmartRWLocker = SmartRWLocker(), idGetter: (ObjectType) -> IdType): FullReadCRUDCacheRepo<ObjectType, IdType>
Link copied to clipboard
fun <ObjectType, IdType, InputType> WriteCRUDRepo<ObjectType, IdType, InputType>.caching(kvCache: KVCache<IdType, ObjectType>, scope: CoroutineScope, locker: SmartRWLocker = SmartRWLocker(), idGetter: (ObjectType) -> IdType): WriteCRUDCacheRepo<ObjectType, IdType, InputType>
Link copied to clipboard
Link copied to clipboard
suspend fun <ObjectType, IdType, InputValueType> WriteCRUDRepo<ObjectType, IdType, InputValueType>.create(vararg values: InputValueType): List<ObjectType>
Link copied to clipboard
Link copied to clipboard
suspend fun <ObjectType, IdType, InputValueType> WriteCRUDRepo<ObjectType, IdType, InputValueType>.deleteById(vararg ids: IdType)
Link copied to clipboard
fun <ObjectType, IdType, InputType> CRUDRepo<ObjectType, IdType, InputType>.fullyCached(kvCache: KeyValueRepo<IdType, ObjectType> = MapKeyValueRepo(), scope: CoroutineScope = CoroutineScope(Dispatchers.Default), skipStartInvalidate: Boolean = false, locker: SmartRWLocker = SmartRWLocker(), idGetter: (ObjectType) -> IdType): FullCRUDCacheRepo<ObjectType, IdType, InputType>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open suspend override fun getByPagination(pagination: Pagination): PaginationResult<RegisteredObject>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open suspend override fun update(values: List<UpdatedValuePair<Id, InputObject>>): List<RegisteredObject>
Link copied to clipboard
suspend fun <ObjectType, IdType, InputValueType> WriteCRUDRepo<ObjectType, IdType, InputValueType>.update(vararg values: UpdatedValuePair<IdType, InputValueType>): List<ObjectType>
Link copied to clipboard
inline fun <FromKey, FromValue, ToKey, ToValue> ReadCRUDRepo<ToValue, ToKey>.withMapper(mapper: MapperRepo<FromKey, FromValue, ToKey, ToValue>): ReadCRUDRepo<FromValue, FromKey>
inline fun <FromKey, FromValue, FromInput, ToKey, ToValue, ToInput> CRUDRepo<ToValue, ToKey, ToInput>.withMapper(mapper: MapperRepo<FromKey, FromValue, ToKey, ToValue>, simpleSuspendableMapper: SimpleSuspendableMapper<FromInput, ToInput>): CRUDRepo<FromValue, FromKey, FromInput>
inline fun <FromKey, FromValue, FromInput, ToKey, ToValue, ToInput> WriteCRUDRepo<ToValue, ToKey, ToInput>.withMapper(mapper: MapperRepo<FromKey, FromValue, ToKey, ToValue>, simpleSuspendableMapper: SimpleSuspendableMapper<FromInput, ToInput>): WriteCRUDRepo<FromValue, FromKey, FromInput>
inline fun <FromKey, FromValue, ToKey, ToValue> ReadCRUDRepo<ToValue, ToKey>.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 }): ReadCRUDRepo<FromValue, FromKey>
inline fun <FromKey, FromValue, FromInput, ToKey, ToValue, ToInput> CRUDRepo<ToValue, ToKey, ToInput>.withMapper(noinline keyFromToTo: suspend FromKey.() -> ToKey = { this as ToKey }, noinline valueFromToTo: suspend FromValue.() -> ToValue = { this as ToValue }, noinline inputFromToTo: suspend FromInput.() -> ToInput = { this as ToInput }, noinline keyToToFrom: suspend ToKey.() -> FromKey = { this as FromKey }, noinline valueToToFrom: suspend ToValue.() -> FromValue = { this as FromValue }, noinline inputToToFrom: suspend ToInput.() -> FromInput = { this as FromInput }): CRUDRepo<FromValue, FromKey, FromInput>
inline fun <FromKey, FromValue, FromInput, ToKey, ToValue, ToInput> WriteCRUDRepo<ToValue, ToKey, ToInput>.withMapper(noinline keyFromToTo: suspend FromKey.() -> ToKey = { this as ToKey }, noinline valueFromToTo: suspend FromValue.() -> ToValue = { this as ToValue }, noinline inputFromToTo: suspend FromInput.() -> ToInput = { this as ToInput }, noinline keyToToFrom: suspend ToKey.() -> FromKey = { this as FromKey }, noinline valueToToFrom: suspend ToValue.() -> FromValue = { this as FromValue }, noinline inputToToFrom: suspend ToInput.() -> FromInput = { this as FromInput }): WriteCRUDRepo<FromValue, FromKey, FromInput>