org.mapdb.Store.kt Maven / Gradle / Ivy
package org.mapdb
/**
* Stores records
*/
interface StoreImmutable {
fun get(recid: Long, serializer: Serializer): R?
fun getAllRecids(): LongIterator
fun getAllFiles(): Iterable
}
/**
* Stores records, mutable version
*/
interface Store: StoreImmutable, Verifiable,
ConcurrencyAware { //TODO put assertions for underlying collections and Volumes
fun preallocate():Long;
fun put(record: R?, serializer: Serializer):Long
fun update(recid: Long, record: R?, serializer: Serializer)
fun compareAndSwap(recid: Long,
expectedOldRecord: R?,
newRecord: R?,
serializer: Serializer
): Boolean
fun delete(recid: Long, serializer: Serializer)
fun commit();
fun compact()
fun close();
val isClosed:Boolean;
override fun verify()
val isReadOnly: Boolean
fun fileLoad(): Boolean;
}
/**
* Stores records, transactional version
*/
interface StoreTx:Store{
fun rollback();
}
interface StoreBinary:Store{
fun getBinaryLong(recid:Long, f:StoreBinaryGetLong):Long
}