# ReadKeyValueRepo

interface ReadKeyValueRepo < Key , Value > : Repo (source)

Read part of KeyValueRepo

#### Type Parameters

Key

This type will be used as key in all operations related to searches of data

Value

This type will be used as returning data in most "get" operations

#### Inheritors

KeyValueRepo
DelegateBasedKeyValueRepo
ReadMapKeyValueRepo
MapKeyValueRepo
ReadKeyValueCacheRepo
AutoRecacheReadKeyValueRepo
FullReadKeyValueCacheRepo
DirectFullReadKeyValueCacheRepo
MapperReadKeyValueRepo
MapperKeyValueRepo
ReadKeyValueFromCRUDRepo
ReadKeyValueFromKeyValuesRepo
KtorReadKeyValueRepoClient
FileReadKeyValueRepo
FileKeyValueRepo
AbstractExposedReadKeyValueRepo
ExposedReadKeyValueRepo

## Functions

asReadCRUDRepo
Link copied to clipboard
fun < K , V > ReadKeyValueRepo < K , V >. asReadCRUDRepo (): ReadCRUDFromKeyValueRepo < V , K >

Wraps this ReadKeyValueRepo as a ReadCRUDFromKeyValueRepo, exposing CRUD read operations.

asReadKeyValuesRepo
Link copied to clipboard
fun < K , V , VI : Iterable < V >> ReadKeyValueRepo < K , VI >. asReadKeyValuesRepo (): ReadKeyValuesFromKeyValueRepo < K , V , VI >

Wraps this ReadKeyValueRepo (mapping keys to iterables) as a ReadKeyValuesFromKeyValueRepo, exposing a one-to-many read interface.

cached
Link copied to clipboard
fun < Key , Value > ReadKeyValueRepo < Key , Value >. cached (kvCache: KVCache < Key , Value >, locker: SmartRWLocker = SmartRWLocker()): ReadKeyValueCacheRepo < Key , Value >
fun < Key , Value > ReadKeyValueRepo < Key , Value >. cached (kvCache: KeyValueRepo < Key , Value >, locker: SmartRWLocker = SmartRWLocker()): FullReadKeyValueCacheRepo < Key , Value >
contains
Link copied to clipboard
abstract suspend fun contains (key: Key ): Boolean
count
Link copied to clipboard
abstract suspend fun count (): Long
diff
Link copied to clipboard
suspend fun < Id , Registered > ReadKeyValueRepo < Id , Registered >. diff (other: Map < Id , Registered >): MapDiff < Id , Registered >

Computes the difference between all entries in this ReadKeyValueRepo and the given other map.

directlyCached
Link copied to clipboard
fun < Key , Value > ReadKeyValueRepo < Key , Value >. directlyCached (kvCache: KeyValueRepo < Key , Value >, locker: SmartRWLocker = SmartRWLocker()): DirectFullReadKeyValueCacheRepo < Key , Value >
get
Link copied to clipboard
abstract suspend fun get (k: Key ): Value ?
getAll
Link copied to clipboard
open suspend fun getAll (): Map < Key , Value >

Returns all key-value pairs in the repository as a Map. Default implementation iterates all pages using keys and get.

keys
Link copied to clipboard
abstract suspend fun keys (pagination: Pagination , reversed: Boolean = false): PaginationResult < Key >

This method should use sorted by Keys search and return the PaginationResult. By default, it should use ascending sort for Keys

open suspend fun keys (v: Value , pagination: Pagination , reversed: Boolean = false): PaginationResult < Key >

This method should use sorted by Keys search and return the PaginationResult. By default, it should use ascending sort for Keys.

maxPagePagination
Link copied to clipboard
inline suspend fun ReadKeyValueRepo <*, *>. maxPagePagination (): SimplePagination

Creates a pagination starting from the first page with size equal to the total count of items in this ReadKeyValueRepo. This effectively creates a single page containing all items.

values
Link copied to clipboard
abstract suspend fun values (pagination: Pagination , reversed: Boolean = false): PaginationResult < Value >

This method should use sorted by Keys search and return the PaginationResult. By default, it should use ascending sort for Keys

withMapper
Link copied to clipboard
inline fun < FromKey , FromValue , ToKey , ToValue > ReadKeyValueRepo < ToKey , ToValue >. withMapper (mapper: MapperRepo < FromKey , FromValue , ToKey , ToValue >): ReadKeyValueRepo < FromKey , FromValue >

Wraps this ReadKeyValueRepo with a MapperRepo to expose a mapped ReadKeyValueRepo.

inline fun < FromKey , FromValue , ToKey , ToValue > ReadKeyValueRepo < 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 }): ReadKeyValueRepo < FromKey , FromValue >

Wraps this ReadKeyValueRepo with inline conversion lambdas to expose a mapped ReadKeyValueRepo.