All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy