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

iosArm64Main.maryk.rocksdb.ColumnFamilyOptions.kt Maven / Gradle / Ivy

package maryk.rocksdb

import rocksdb.RocksDBColumnFamilyOptions
import rocksdb.RocksDBComparator
import rocksdb.RocksDBPrefixExtractor
import rocksdb.RocksDBPrefixType.RocksDBPrefixFixedLength

actual class ColumnFamilyOptions private constructor(
    internal val native: RocksDBColumnFamilyOptions
) : RocksObject() {
    actual constructor() : this(RocksDBColumnFamilyOptions())

    actual fun setMinWriteBufferNumberToMerge(minWriteBufferNumberToMerge: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setMinWriteBufferNumberToMerge(minWriteBufferNumberToMerge)
        return this
    }

    actual fun minWriteBufferNumberToMerge(): Int {
        assert(isOwningHandle())
        return native.minWriteBufferNumberToMerge()
    }

    actual fun setMaxWriteBufferNumberToMaintain(maxWriteBufferNumberToMaintain: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setMaxWriteBufferNumber(maxWriteBufferNumberToMaintain)
        return this
    }

    actual fun maxWriteBufferNumberToMaintain(): Int {
        assert(isOwningHandle())
        return native.maxWriteBufferNumber()
    }

    actual fun setBloomLocality(bloomLocality: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setBloomLocality(bloomLocality.toUInt())
        return this
    }

    actual fun bloomLocality(): Int {
        assert(isOwningHandle())
        return native.bloomLocality().toInt()
    }

    actual fun setNumLevels(numLevels: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setNumLevels(numLevels)
        return this
    }

    actual fun numLevels(): Int {
        assert(isOwningHandle())
        return native.numLevels()
    }

    actual fun setCompactionStyle(compactionStyle: CompactionStyle): ColumnFamilyOptions {
        native.setCompactionStyle(compactionStyle.value)
        return this
    }

    actual fun compactionStyle(): CompactionStyle {
        return getCompactionStyle(native.compactionStyle)
    }

    actual fun setComparator(builtinComparator: BuiltinComparator): ColumnFamilyOptions {
        native.setComparator(RocksDBComparator.comparatorWithType(builtinComparator.native))
        return this
    }

    actual fun setComparator(comparator: AbstractComparator): ColumnFamilyOptions {
        native.setComparator(comparator.native)
        return this
    }

    actual fun useFixedLengthPrefixExtractor(n: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setPrefixExtractor(
            RocksDBPrefixExtractor.prefixExtractorWithType(
                RocksDBPrefixFixedLength,
                n.toULong()
            )
        )
        return this
    }

    actual fun setMaxBytesForLevelMultiplier(multiplier: Double): ColumnFamilyOptions {
        native.maxBytesForLevelMultiplier = multiplier
        return this
    }

    actual fun maxBytesForLevelMultiplier(): Double {
        return native.maxBytesForLevelMultiplier
    }

    actual fun setWriteBufferSize(writeBufferSize: Long): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setWriteBufferSize(writeBufferSize.toULong())
        return this
    }

    actual fun writeBufferSize(): Long {
        assert(isOwningHandle())
        return native.writeBufferSize().toLong()
    }

    actual fun setDisableAutoCompactions(disableAutoCompactions: Boolean): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setDisableAutoCompactions(disableAutoCompactions)
        return this
    }

    actual fun disableAutoCompactions(): Boolean {
        assert(isOwningHandle())
        return native.disableAutoCompactions()
    }

    actual fun setLevel0FileNumCompactionTrigger(level0FileNumCompactionTrigger: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setLevel0FileNumCompactionTrigger(level0FileNumCompactionTrigger)
        return this
    }

    actual fun level0FileNumCompactionTrigger(): Int {
        assert(isOwningHandle())
        return native.level0FileNumCompactionTrigger()
    }

    actual fun setMaxBytesForLevelBase(maxBytesForLevelBase: Long): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setMaxBytesForLevelBase(maxBytesForLevelBase.toULong())
        return this
    }

    actual fun maxBytesForLevelBase(): Long {
        assert(isOwningHandle())
        return native.maxBytesForLevelBase().toLong()
    }

    actual fun setCompressionType(compressionType: CompressionType): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setCompressionType(compressionType.value)
        return this
    }

    actual fun compressionType(): CompressionType {
        assert(isOwningHandle())
        return getCompressionType(
            native.compressionType()
        )
    }

    actual fun setMaxWriteBufferNumber(maxWriteBufferNumber: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setMaxWriteBufferNumber(maxWriteBufferNumber)
        return this
    }

    actual fun maxWriteBufferNumber(): Int {
        assert(isOwningHandle())
        return native.maxWriteBufferNumber()
    }

    actual fun setMemtablePrefixBloomSizeRatio(memtablePrefixBloomSizeRatio: Double): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setMemtablePrefixBloomSizeRatio(memtablePrefixBloomSizeRatio)
        return this
    }

    actual fun memtablePrefixBloomSizeRatio(): Double {
        assert(isOwningHandle())
        return native.memtablePrefixBloomSizeRatio()
    }

    actual fun setMemtableHugePageSize(memtableHugePageSize: Long): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setMemtableHugePageTlbSize(memtableHugePageSize.toULong())
        return this
    }

    actual fun memtableHugePageSize(): Long {
        assert(isOwningHandle())
        return native.memtableHugePageTlbSize.toLong()
    }

    actual fun setArenaBlockSize(arenaBlockSize: Long): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setArenaBlockSize(arenaBlockSize.toULong())
        return this
    }

    actual fun arenaBlockSize(): Long {
        assert(isOwningHandle())
        return native.arenaBlockSize.toLong()
    }

    actual fun setLevel0SlowdownWritesTrigger(level0SlowdownWritesTrigger: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setLevel0SlowdownWritesTrigger(level0SlowdownWritesTrigger)
        return this
    }

    actual fun level0SlowdownWritesTrigger(): Int {
        assert(isOwningHandle())
        return native.level0SlowdownWritesTrigger()
    }

    actual fun setLevel0StopWritesTrigger(level0StopWritesTrigger: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setLevel0StopWritesTrigger(level0StopWritesTrigger)
        return this
    }

    actual fun level0StopWritesTrigger(): Int {
        assert(isOwningHandle())
        return native.level0StopWritesTrigger()
    }

    actual fun setTargetFileSizeBase(targetFileSizeBase: Long): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setTargetFileSizeBase(targetFileSizeBase.toULong())
        return this
    }

    actual fun targetFileSizeBase(): Long {
        assert(isOwningHandle())
        return native.targetFileSizeBase().toLong()
    }

    actual fun setTargetFileSizeMultiplier(multiplier: Int): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setTargetFileSizeMultiplier(multiplier)
        return this
    }

    actual fun targetFileSizeMultiplier(): Int {
        assert(isOwningHandle())
        return native.targetFileSizeMultiplier()
    }

    actual fun setMaxSequentialSkipInIterations(maxSequentialSkipInIterations: Long): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setMaxSequentialSkipInIterations(maxSequentialSkipInIterations.toULong())
        return this
    }

    actual fun maxSequentialSkipInIterations(): Long {
        assert(isOwningHandle())
        return native.maxSequentialSkipInIterations().toLong()
    }

    actual fun setMaxSuccessiveMerges(maxSuccessiveMerges: Long): ColumnFamilyOptions {
        assert(isOwningHandle())
        native.setMaxSuccessiveMerges(maxSuccessiveMerges.toULong())
        return this
    }

    actual fun maxSuccessiveMerges(): Long {
        assert(isOwningHandle())
        return native.maxSuccessiveMerges().toLong()
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy