Package-level declarations

Types

Link copied to clipboard
interface CacheRepo
Link copied to clipboard

Any inheritor of this should work with next logic: try to take data from some dev.inmo.micro_utils.repos.cache.cache.KVCache and, if not exists, take from origin and save to the cache for future reuse

Link copied to clipboard
open class CRUDCacheRepo<ObjectType, IdType, InputValueType>(parentRepo: CRUDRepo<ObjectType, IdType, InputValueType>, kvCache: KVCache<IdType, ObjectType>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default), locker: SmartRWLocker = SmartRWLocker(), idGetter: (ObjectType) -> IdType) : ReadCRUDCacheRepo<ObjectType, IdType> , WriteCRUDRepo<ObjectType, IdType, InputValueType> , CRUDRepo<ObjectType, IdType, InputValueType>
Link copied to clipboard

Any inheritor of this should work with next logic: try to take data from their original repo, if successful - save data to internal dev.inmo.micro_utils.repos.cache.cache.FullKVCache or try to take data from that internal cache

Link copied to clipboard
open class KeyValueCacheRepo<Key, Value>(parentRepo: KeyValueRepo<Key, Value>, kvCache: KVCache<Key, Value>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default), locker: SmartRWLocker = SmartRWLocker()) : ReadKeyValueCacheRepo<Key, Value> , KeyValueRepo<Key, Value> , WriteKeyValueRepo<Key, Value> , CommonCacheRepo
Link copied to clipboard
open class KeyValuesCacheRepo<Key, Value>(parentRepo: KeyValuesRepo<Key, Value>, kvCache: KVCache<Key, List<Value>>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default), locker: SmartRWLocker = SmartRWLocker()) : ReadKeyValuesCacheRepo<Key, Value> , KeyValuesRepo<Key, Value> , WriteKeyValuesRepo<Key, Value> , CommonCacheRepo
Link copied to clipboard
open class ReadCRUDCacheRepo<ObjectType, IdType>(parentRepo: ReadCRUDRepo<ObjectType, IdType>, kvCache: KVCache<IdType, ObjectType>, locker: SmartRWLocker = SmartRWLocker(), idGetter: (ObjectType) -> IdType) : ReadCRUDRepo<ObjectType, IdType> , CommonCacheRepo
Link copied to clipboard
open class ReadKeyValueCacheRepo<Key, Value>(parentRepo: ReadKeyValueRepo<Key, Value>, kvCache: KVCache<Key, Value>, locker: SmartRWLocker = SmartRWLocker()) : ReadKeyValueRepo<Key, Value> , CommonCacheRepo
Link copied to clipboard
open class ReadKeyValuesCacheRepo<Key, Value>(parentRepo: ReadKeyValuesRepo<Key, Value>, kvCache: KVCache<Key, List<Value>>, locker: SmartRWLocker = SmartRWLocker()) : ReadKeyValuesRepo<Key, Value> , CommonCacheRepo
Link copied to clipboard
open class WriteCRUDCacheRepo<ObjectType, IdType, InputValueType>(parentRepo: WriteCRUDRepo<ObjectType, IdType, InputValueType>, kvCache: KeyValueRepo<IdType, ObjectType>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default), locker: SmartRWLocker = SmartRWLocker(), idGetter: (ObjectType) -> IdType) : WriteCRUDRepo<ObjectType, IdType, InputValueType> , CommonCacheRepo

Functions

Link copied to clipboard
fun <Key, Value> KeyValueRepo<Key, Value>.cached(kvCache: KVCache<Key, Value>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default), locker: SmartRWLocker = SmartRWLocker()): KeyValueCacheRepo<Key, Value>
fun <Key, Value> KeyValuesRepo<Key, Value>.cached(kvCache: KVCache<Key, List<Value>>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default), locker: SmartRWLocker = SmartRWLocker()): KeyValuesCacheRepo<Key, Value>
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>
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>