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

macosX64Main.maryk.rocksdb.AbstractWriteBatch.kt Maven / Gradle / Ivy

package maryk.rocksdb

import maryk.toNSData
import maryk.wrapWithErrorThrower
import rocksdb.RocksDBKeyRange
import rocksdb.RocksDBWriteBatchBase
import rocksdb.getWriteBatch

actual abstract class AbstractWriteBatch internal constructor(
    private val nativeBase: RocksDBWriteBatchBase
) : RocksObject(), WriteBatchInterface {
    override fun singleDelete(key: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.singleDelete(key.toNSData(), error)
        }
    }

    override fun singleDelete(columnFamilyHandle: ColumnFamilyHandle, key: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.singleDelete(key.toNSData(), columnFamilyHandle.native, error)
        }
    }

    override fun count(): Int {
        return nativeBase.count()
    }

    override fun put(key: ByteArray, value: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.setData(value.toNSData(), key.toNSData(), error)
        }
    }

    override fun put(columnFamilyHandle: ColumnFamilyHandle, key: ByteArray, value: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.setData(value.toNSData(), key.toNSData(), columnFamilyHandle.native, error)
        }
    }

    override fun merge(key: ByteArray, value: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.mergeData(value.toNSData(), key.toNSData(), error)
        }
    }

    override fun merge(columnFamilyHandle: ColumnFamilyHandle, key: ByteArray, value: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.mergeData(value.toNSData(), key.toNSData(), columnFamilyHandle.native, error)
        }
    }

    override fun delete(key: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.deleteDataForKey(key.toNSData(), error)
        }
    }

    override fun delete(columnFamilyHandle: ColumnFamilyHandle, key: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.deleteDataForKey(key.toNSData(), columnFamilyHandle.native, error)
        }
    }

    override fun deleteRange(beginKey: ByteArray, endKey: ByteArray) {
        wrapWithErrorThrower { error ->
            val range = RocksDBKeyRange()
            range.start = beginKey.toNSData()
            range.end = endKey.toNSData()
            nativeBase.deleteRange(range, error)
        }
    }

    override fun deleteRange(columnFamilyHandle: ColumnFamilyHandle, beginKey: ByteArray, endKey: ByteArray) {
        wrapWithErrorThrower { error ->
            val range = RocksDBKeyRange()
            range.start = beginKey.toNSData()
            range.end = endKey.toNSData()
            nativeBase.deleteRange(range, columnFamilyHandle.native, error)
        }
    }

    override fun putLogData(blob: ByteArray) {
        wrapWithErrorThrower { error ->
            nativeBase.putLogData(blob.toNSData(), error)
        }
    }

    override fun clear() {
        nativeBase.clear()
    }

    override fun setSavePoint() {
        nativeBase.setSavePoint()
    }

    override fun rollbackToSavePoint() {
        wrapWithErrorThrower { error ->
            nativeBase.rollbackToSavePoint(error)
        }
    }

    override fun popSavePoint() {
        wrapWithErrorThrower { error ->
            nativeBase.popSavePoint(error)
        }
    }

    override fun setMaxBytes(maxBytes: Long) {
        nativeBase.setMaxBytes(maxBytes.toULong())
    }

    override fun getWriteBatch(): WriteBatch {
        return WriteBatch(nativeBase.getWriteBatch()!!)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy