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), 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)) : 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)) : ReadKeyValuesCacheRepo<Key, Value> , KeyValuesRepo<Key, Value> , WriteKeyValuesRepo<Key, Value> , CommonCacheRepo
Link copied to clipboard
Link copied to clipboard
open class WriteCRUDCacheRepo<ObjectType, IdType, InputValueType>(parentRepo: WriteCRUDRepo<ObjectType, IdType, InputValueType>, kvCache: KVCache<IdType, ObjectType>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default), 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)): KeyValueCacheRepo<Key, Value>
fun <Key, Value> KeyValuesRepo<Key, Value>.cached(kvCache: KVCache<Key, List<Value>>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default)): KeyValuesCacheRepo<Key, Value>
Link copied to clipboard