class Sparkey::LogIterator
Public Class Methods
new(log_reader)
click to toggle source
# File lib/sparkey/log_iterator.rb, line 4 def initialize(log_reader) @log_reader = log_reader ptr = FFI::MemoryPointer.new(:pointer) handle_status Sparkey::Native.logiter_create(ptr, @log_reader.ptr) @log_iter_ptr = ptr.read_pointer end
Public Instance Methods
<=>(iterator)
click to toggle source
# File lib/sparkey/log_iterator.rb, line 34 def <=>(iterator) ptr = FFI::MemoryPointer.new(:int) handle_status Sparkey::Native.logiter_keycmp(@log_iter_ptr, iterator.ptr, @log_reader.ptr, ptr) ptr.read_int end
active?()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 46 def active? state == :iter_active end
close()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 124 def close ptr = FFI::MemoryPointer.new(:pointer).write_pointer(@log_iter_ptr) Sparkey::Native.logiter_close(ptr) end
closed?()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 54 def closed? state == :iter_closed end
entry_delete?()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 62 def entry_delete? type == :entry_delete end
entry_put?()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 58 def entry_put? type == :entry_put end
get_key()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 74 def get_key max_key_length = @log_reader.max_key_length buffer_ptr = FFI::MemoryPointer.new(:uint8, max_key_length) buffer_length_ptr = FFI::MemoryPointer.new(:uint64) handle_status Sparkey::Native.logiter_fill_key(@log_iter_ptr, @log_reader.ptr, max_key_length, buffer_ptr, buffer_length_ptr) buffer_ptr.read_bytes(buffer_length_ptr.read_uint64) end
get_key_chunk(chunk_size = 1024) { |read_pointer.read_bytes(buffer_length)| ... }
click to toggle source
# File lib/sparkey/log_iterator.rb, line 84 def get_key_chunk(chunk_size = 1024) buffer = FFI::Buffer.alloc_out(:uint8, chunk_size) buffer_length_ptr = FFI::MemoryPointer.new(:uint64) loop do handle_status Sparkey::Native.logiter_keychunk(@log_iter_ptr, @log_reader.ptr, chunk_size, buffer, buffer_length_ptr) buffer_length = buffer_length_ptr.read_uint64 break if buffer_length.zero? yield buffer.read_pointer.read_bytes(buffer_length) end end
get_value()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 99 def get_value max_value_length = @log_reader.max_value_length buffer_ptr = FFI::MemoryPointer.new(:uint8, max_value_length) buffer_length_ptr = FFI::MemoryPointer.new(:uint64) handle_status Sparkey::Native.logiter_fill_value(@log_iter_ptr, @log_reader.ptr, max_value_length, buffer_ptr, buffer_length_ptr) buffer_ptr.read_bytes(buffer_length_ptr.read_uint64) end
get_value_chunk(chunk_size = 1024) { |read_pointer.read_bytes(buffer_length)| ... }
click to toggle source
# File lib/sparkey/log_iterator.rb, line 109 def get_value_chunk(chunk_size = 1024) buffer = FFI::Buffer.alloc_out(:uint8, chunk_size) buffer_length_ptr = FFI::MemoryPointer.new(:uint64) loop do handle_status Sparkey::Native.logiter_valuechunk(@log_iter_ptr, @log_reader.ptr, chunk_size, buffer, buffer_length_ptr) buffer_length = buffer_length_ptr.read_uint64 break if buffer_length.zero? yield buffer.read_pointer.read_bytes(buffer_length) end end
invalid?()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 50 def invalid? state == :iter_invalid end
key_length()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 66 def key_length Sparkey::Native.logiter_keylen(@log_iter_ptr) end
new?()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 42 def new? state == :iter_new end
next()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 14 def next handle_status Sparkey::Native.logiter_next(@log_iter_ptr, @log_reader.ptr) end
ptr()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 130 def ptr @log_iter_ptr end
reset()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 22 def reset handle_status Sparkey::Native.logiter_reset(@log_iter_ptr, @log_reader.ptr) end
skip(count)
click to toggle source
# File lib/sparkey/log_iterator.rb, line 18 def skip(count) handle_status Sparkey::Native.logiter_skip(@log_iter_ptr, @log_reader.ptr, count) end
state()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 26 def state Sparkey::Native.logiter_state(@log_iter_ptr) end
type()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 30 def type Sparkey::Native.logiter_type(@log_iter_ptr) end
value_length()
click to toggle source
# File lib/sparkey/log_iterator.rb, line 70 def value_length Sparkey::Native.logiter_valuelen(@log_iter_ptr) end