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

Spatium SDK > StorageDriver

StorageDriver

interface StorageDriver

Абстрактный Storage Driver API

Описывает одновременно стратегию и постоянного хранилища (база данных, файловая система), и временного (кэш, память). SDK активно использует обе стратегии под именами:

  • storage - постоянное хранилище
  • cache - временное хранилище

Пример

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)

Наследники

MemoryStorageDriver

Функции

Имя Описание
read [androidJvm]
abstract suspend fun read(meta: StorageMeta): StorageData?
Чтение данных, хранящихся в предоставленной мете
take [androidJvm]
abstract suspend fun take(meta: StorageMeta): StorageData?
Принимает данные, хранящиеся внутри предоставленной меты и удаляет оригинал
write [androidJvm]
abstract suspend fun write(meta: StorageMeta, data: StorageData)
Записывает блок данных в хранилище, уникально идентифицируется метой