class Sparkey::HashReader

Public Instance Methods

close() click to toggle source
# File lib/sparkey/hash_reader.rb, line 14
def close
  ptr = FFI::MemoryPointer.new(:pointer).write_pointer(@hash_reader_ptr)

  Sparkey::Native.hash_close(ptr)
end
collision_count() click to toggle source
# File lib/sparkey/hash_reader.rb, line 35
def collision_count
  Sparkey::Native.hash_numcollisions(@hash_reader_ptr)
end
entry_count() click to toggle source
# File lib/sparkey/hash_reader.rb, line 31
def entry_count
  Sparkey::Native.hash_numentries(@hash_reader_ptr)
end
log_reader() click to toggle source
# File lib/sparkey/hash_reader.rb, line 39
def log_reader
  reader_ptr = Sparkey::Native.hash_getreader(@hash_reader_ptr)

  log_reader = Sparkey::LogReader.new
  log_reader.ptr = reader_ptr

  log_reader
end
open(filename) click to toggle source
# File lib/sparkey/hash_reader.rb, line 4
def open(filename)
  hash_filename = "#{filename}.spi"
  log_filename = "#{filename}.spl"
  ptr = FFI::MemoryPointer.new(:pointer)

  handle_status Sparkey::Native.hash_open(ptr, hash_filename, log_filename)

  @hash_reader_ptr = ptr.read_pointer
end
ptr() click to toggle source
# File lib/sparkey/hash_reader.rb, line 48
def ptr
  @hash_reader_ptr
end
seek(key) click to toggle source
# File lib/sparkey/hash_reader.rb, line 20
def seek(key)
  iterator = Sparkey::HashIterator.new(self)

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

  handle_status Sparkey::Native.hash_get(@hash_reader_ptr, key_ptr, key_length, iterator.ptr)

  iterator
end