Method: Codec::Tagged#decode

Defined in:
lib/codec/prefix.rb

#decode(buffer, field, length = nil) ⇒ Object



110
111
112
113
114
115
116
117
118
119
# File 'lib/codec/prefix.rb', line 110

def decode(buffer, field, length = nil)
  buffer = buffer.slice!(0...length) if length && length > 0
  tag = Field.new("TAG")
  @tag_codec.decode(buffer,tag)
  field.set_id(tag.get_value.to_s)
  if @subCodecs[tag.get_value.to_s].nil?
    raise ParsingException.new "Unknown tag #{tag.get_value.to_s} when decoding #{field.get_id}"
  end
  @subCodecs[tag.get_value.to_s].decode(buffer,field)
end