AutoRecacheReadCRUDRepo

open class AutoRecacheReadCRUDRepo<RegisteredObject, Id>(originalRepo: ReadCRUDRepo<RegisteredObject, Id>, scope: CoroutineScope, kvCache: KeyValueRepo<Id, RegisteredObject> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds, actionWrapper: ActionWrapper = ActionWrapper.Direct, idGetter: (RegisteredObject) -> Id) : ReadCRUDRepo<RegisteredObject, Id> , FallbackCacheRepo

Inheritors

Constructors

Link copied to clipboard
constructor(originalRepo: ReadCRUDRepo<RegisteredObject, Id>, scope: CoroutineScope, originalCallTimeoutMillis: Long, kvCache: KeyValueRepo<Id, RegisteredObject> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds, idGetter: (RegisteredObject) -> Id)
constructor(originalRepo: ReadCRUDRepo<RegisteredObject, Id>, scope: CoroutineScope, kvCache: KeyValueRepo<Id, RegisteredObject> = MapKeyValueRepo(), recacheDelay: Long = 60.seconds.inWholeMilliseconds, actionWrapper: ActionWrapper = ActionWrapper.Direct, idGetter: (RegisteredObject) -> Id)

Properties

Link copied to clipboard
val autoUpdateJob: Job

Functions

Link copied to clipboard
Link copied to clipboard
open suspend override fun contains(id: Id): Boolean
Link copied to clipboard
open suspend override fun count(): Long
Link copied to clipboard
open suspend override fun getAll(): Map<Id, RegisteredObject>
Link copied to clipboard
open suspend override fun getById(id: Id): RegisteredObject?
Link copied to clipboard
open suspend override fun getByPagination(pagination: Pagination): PaginationResult<RegisteredObject>
Link copied to clipboard
open suspend override fun getIdsByPagination(pagination: Pagination): PaginationResult<Id>
Link copied to clipboard
open suspend override fun invalidate()
Link copied to clipboard
inline suspend fun ReadCRUDRepo<*, *>.maxPagePagination(): SimplePagination
Link copied to clipboard
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>