Method: LEON::Parser#parseOLI

Defined in:
lib/io.rb

#parseOLIObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/io.rb', line 61

def parseOLI()
  if (@state & 0x01) === 0
    parseSI()
  end
  if @stringIndex.length === 0
    return self
  end
  @OLItype = @buffer.readUInt8()
  case @OLItype
    when Constants::UNSIGNED_CHAR, Constants::UNSIGNED_SHORT, Constants::UNSIGNED_INT
      count = @buffer.readValue(@OLItype)
    when 0xFF
      return self
    else
      return self
  end
  for i in 0..(count - 1)
    @objectLayoutIndex.push Array.new
    numFields = @buffer.readValue(@buffer.readUInt8())
    for j in 0..(numFields - 1)
      @objectLayoutIndex[i].push(@buffer.readValue(@stringIndexType))
    end
  end
  return self
end