Method: Bitcask::HintFile#read
- Defined in:
- lib/bitcask/hint_file.rb
#read ⇒ Object
Returns [timestamp, key, value_pos, value_size] read from the current offset, and advances to the next.
Can raise Bitcask::ChecksumError
60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/bitcask/hint_file.rb', line 60 def read # Parse header header = @file.read(18) or return tstamp, ksz, value_sz, value_pos1, value_pos2 = header.unpack "NnNNN" # value_pos is an 8 byte big-endian number... # For reference, reverse is [value_pos >> 32, value & 0xFFFFFFFF].pack("NN") value_pos = (value_pos1 << 32) | value_pos2 # Read key key = @file.read ksz Entry.new tstamp, value_sz, value_pos, key end |