Class: Overlook::BitReader

Inherits:
Object
  • Object
show all
Defined in:
lib/overlook/bit_reader.rb

Instance Method Summary collapse

Constructor Details

#initialize(_buffer) ⇒ BitReader

Returns a new instance of BitReader.



3
4
5
# File 'lib/overlook/bit_reader.rb', line 3

def initialize(_buffer)
  @buffer = BitBuffer.new(_buffer)
end

Instance Method Details

#bitObject



11
12
13
# File 'lib/overlook/bit_reader.rb', line 11

def bit
  bits(1)
end

#byteObject



15
16
17
# File 'lib/overlook/bit_reader.rb', line 15

def byte
  bits(8)
end

#bytes(n) ⇒ Object



7
8
9
# File 'lib/overlook/bit_reader.rb', line 7

def bytes(n)
  @buffer.bytes(n)
end

#eof?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/overlook/bit_reader.rb', line 35

def eof?
  @buffer.eof?
end

#int32Object



28
29
30
31
32
33
# File 'lib/overlook/bit_reader.rb', line 28

def int32
  ret  =  byte
  ret |=  byte << 8
  ret |=  byte << 16
  ret |=  byte << 24
end

#shortObject



23
24
25
26
# File 'lib/overlook/bit_reader.rb', line 23

def short
  ret  =  byte
  ret |=  byte << 8
end

#skip(n) ⇒ Object



19
20
21
# File 'lib/overlook/bit_reader.rb', line 19

def skip(n)
  @buffer.skip(n)
end

#var_int(max_len) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/overlook/bit_reader.rb', line 43

def var_int(max_len)
  _byte = 0
  count = 0
  result = 0

  loop do
    return result if count + 1 == max_len
    _byte = self.byte
    result |= (_byte & 0x7F) << (7 * count)
    count = count + 1
    break if _byte & 0x80 == 0
  end
  result
end

#var_int32Object



39
40
41
# File 'lib/overlook/bit_reader.rb', line 39

def var_int32
  var_int(4)
end