Перейти к содержанию

Spatium SDK > StorageDriver

StorageDriver

interface StorageDriver

Abstract Storage Driver API

Describes both permanent (database, filesystem) and temporary (cache, memory) storage methods. SDK actively uses both storage strategies distinguished by name: * storage - permanent storage * cache - temporary storage

Example

write(driver = storage, meta = StorageMeta(room = "323", topic = "dinner"), data = serialize(mapOf(Pair("foo", "boo"))))

val supperTry1 = read(driver = storage, meta = StorageMeta(room = "323", topic = "supper"))

assertEquals(deserialize(LinkedHashMap::class.java, supperTry1.toString()), mapOf(Pair("boo", "woo")))

val supperTry2 = read(driver = storage, meta = StorageMeta(room = "323", topic = "supper"))

assertEquals(deserialize(LinkedHashMap::class.java, supperTry2.toString()), null)

val dinnerTry1 = take(driver = storage, meta = StorageMeta(room = "323", topic = "dinner"))

assertEquals(deserialize(LinkedHashMap::class.java, dinnerTry1.toString()), null)

val dinnerTry2 = take(driver = storage, meta = StorageMeta(room = "323", topic = "dinner"))

assertEquals(deserialize(LinkedHashMap::class.java, dinnerTry2.toString()), null)

Inheritors

MemoryStorageDriver

Functions

Name Summary
read [androidJvm]
abstract suspend fun read(meta: StorageMeta): StorageData?
Read data stored under provided meta
take [androidJvm]
abstract suspend fun take(meta: StorageMeta): StorageData?
Take data stored under provided meta and remove original
write [androidJvm]
abstract suspend fun write(meta: StorageMeta, data: StorageData)
Write a unit of data into storage, uniquely identified by meta