Sha256: 4fac8fd49e75f3f1a4f4da62d55f387abeafb5d076b49aa51ce2eecdfeffeaf8

Contents?: true

Size: 1.31 KB

Versions: 3

Compression:

Stored size: 1.31 KB

Contents

class Sparkey::LogWriter
  include Sparkey::Errors

  def create(filename, compression, block_size)
    ptr = FFI::MemoryPointer.new(:pointer)
    log_filename = "#{filename}.spl"

    handle_status Sparkey::Native.logwriter_create(ptr, log_filename, compression, block_size)

    @log_writer_ptr = ptr.read_pointer
  end

  def open(filename)
    ptr = FFI::MemoryPointer.new(:pointer)
    log_filename = "#{filename}.spl"

    handle_status Sparkey::Native.logwriter_append(ptr, log_filename)
    @log_writer_ptr = ptr.read_pointer
  end

  def put(key, value)
    key_length = key.bytesize
    key_ptr = FFI::MemoryPointer.new(:uint8, key_length).write_bytes(key)

    value_length = value.bytesize
    value_ptr = FFI::MemoryPointer.new(:uint8, value_length).write_bytes(value)

    handle_status Sparkey::Native.logwriter_put(@log_writer_ptr, key_length, key_ptr, value_length, value_ptr)
  end

  def delete(key)
    key_length = key.bytesize
    key_ptr = FFI::MemoryPointer.new(:uint8, key_length).write_bytes(key)

    handle_status Sparkey::Native.logwriter_delete(@log_writer_ptr, key_length, key_ptr)
  end

  def flush
    handle_status Sparkey::Native.logwriter_flush(@log_writer_ptr)
  end

  def close
    ptr = FFI::MemoryPointer.new(:pointer).write_pointer(@log_writer_ptr)

    Sparkey::Native.logwriter_close(ptr)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sparkey-1.3.0 lib/sparkey/log_writer.rb
sparkey-1.2.0 lib/sparkey/log_writer.rb
sparkey-1.1.0 lib/sparkey/log_writer.rb