MapReadKeyValuesRepo

class MapReadKeyValuesRepo<Key, Value>(map: Map<Key, List<Value>> = emptyMap(), locker: SmartRWLocker = SmartRWLocker()) : ReadKeyValuesRepo<Key, Value> (source)

Map-based ReadKeyValuesRepo. All internal operations will be locked with locker (mostly with SmartRWLocker.withReadAcquire)

Warning: It is not recommended to use constructor with both Map and SmartRWLocker. Besides, in case you are using your own Map as a map you should be careful with operations on this map

Constructors

Link copied to clipboard
constructor(map: Map<Key, List<Value>> = emptyMap(), locker: SmartRWLocker = SmartRWLocker())

Functions

Link copied to clipboard
Link copied to clipboard
open suspend override fun contains(k: Key): Boolean
open suspend override fun contains(k: Key, v: Value): Boolean
Link copied to clipboard
open suspend override fun count(): Long
open suspend override fun count(k: Key): Long
Link copied to clipboard
open suspend override fun get(k: Key, pagination: Pagination, reversed: Boolean): PaginationResult<Value>
Link copied to clipboard
open suspend fun getAll(reverseLists: Boolean = false): Map<Key, List<Value>>

WARNING!!! THIS METHOD PROBABLY IS NOT EFFICIENT, USE WITH CAUTION

open suspend fun getAll(k: Key, reversed: Boolean = false): List<Value>
Link copied to clipboard
open suspend override fun keys(pagination: Pagination, reversed: Boolean): PaginationResult<Key>
open suspend override fun keys(v: Value, pagination: Pagination, reversed: Boolean): PaginationResult<Key>
Link copied to clipboard
Link copied to clipboard
inline fun <FromKey, FromValue, ToKey, ToValue> ReadKeyValuesRepo<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 }): ReadKeyValuesRepo<FromKey, FromValue>