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 |