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) Записывает блок данных в хранилище, уникально идентифицируется метой |