# AutoRecacheWriteKeyValuesRepo

open class AutoRecacheWriteKeyValuesRepo < Id , RegisteredObject >(originalRepo: WriteKeyValuesRepo < Id , RegisteredObject >, scope: CoroutineScope, kvCache: KeyValueRepo < Id , List < RegisteredObject >> = MapKeyValueRepo()) : WriteKeyValuesRepo < Id , RegisteredObject > , FallbackCacheRepo (source)

## Constructors

AutoRecacheWriteKeyValuesRepo
Link copied to clipboard
constructor(originalRepo: WriteKeyValuesRepo < Id , RegisteredObject >, scope: CoroutineScope, kvCache: KeyValueRepo < Id , List < RegisteredObject >> = MapKeyValueRepo())

## Properties

onDataCleared
Link copied to clipboard
open override val onDataCleared : Flow< Id >
onNewValue
Link copied to clipboard
open override val onNewValue : Flow< Pair < Id , RegisteredObject >>
onValueRemoved
Link copied to clipboard
open override val onValueRemoved : Flow< Pair < Id , RegisteredObject >>

## Functions

add
Link copied to clipboard
open suspend override fun add (toAdd: Map < Id , List < RegisteredObject >>)
add
Link copied to clipboard
inline suspend fun < Key , Value > WriteKeyValuesRepo < Key , Value >. add (k: Key , vararg v: Value )
inline suspend fun < Key , Value > WriteKeyValuesRepo < Key , Value >. add (k: Key , v: List < Value >)
caching
Link copied to clipboard
fun < Key , Value > WriteKeyValuesRepo < Key , Value >. caching (kvCache: KeyValueRepo < Key , List < Value >>, scope: CoroutineScope = CoroutineScope(Dispatchers.Default), locker: SmartRWLocker = SmartRWLocker()): FullWriteKeyValuesCacheRepo < Key , Value >
clear
Link copied to clipboard
open suspend override fun clear (k: Id )

Fully clear all data by k

clearWithValue
Link copied to clipboard
open suspend override fun clearWithValue (v: RegisteredObject )

Clear v with full clear of all data by Keys with v

invalidate
Link copied to clipboard
open suspend override fun invalidate ()
remove
Link copied to clipboard
open suspend override fun remove (toRemove: Map < Id , List < RegisteredObject >>)

Removes Values by passed Keys without full clear of all data by Key

remove
Link copied to clipboard
inline suspend fun < Key , Value > WriteKeyValuesRepo < Key , Value >. remove (vararg keysAndValues: Pair < Key , List < Value >>)
inline suspend fun < Key , Value > WriteKeyValuesRepo < Key , Value >. remove (keysAndValues: List < Pair < Key , List < Value >>>)
inline suspend fun < Key , Value > WriteKeyValuesRepo < Key , Value >. remove (k: Key , vararg v: Value )
inline suspend fun < Key , Value > WriteKeyValuesRepo < Key , Value >. remove (k: Key , v: List < Value >)
removeWithValue
Link copied to clipboard
open suspend override fun removeWithValue (v: RegisteredObject )

Removes v without full clear of all data by Keys with v

set
Link copied to clipboard
open suspend fun set (toSet: Map < Id , List < RegisteredObject >>)
set
Link copied to clipboard
inline suspend fun < Key , Value > WriteKeyValuesRepo < Key , Value >. set (k: Key , vararg v: Value )
inline suspend fun < Key , Value > WriteKeyValuesRepo < Key , Value >. set (k: Key , v: List < Value >)
withMapper
Link copied to clipboard
inline fun < FromKey , FromValue , ToKey , ToValue > WriteKeyValuesRepo < ToKey , ToValue >. withMapper (mapper: MapperRepo < FromKey , FromValue , ToKey , ToValue >): WriteKeyValuesRepo < FromKey , FromValue >
inline fun < FromKey , FromValue , ToKey , ToValue > WriteKeyValuesRepo < 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 }): WriteKeyValuesRepo < FromKey , FromValue >