Method: Codec::Bertlv#decode

Defined in:
lib/codec/tlv.rb

#decode(buf, msg, length = nil) ⇒ Object



86
87
88
89
90
91
92
93
94
95
# File 'lib/codec/tlv.rb', line 86

def decode(buf,msg,length=nil)
  length ||= buf.length
  buffer = buf.slice!(0...length)
  until buffer.empty?
    sf = Field.new(tag_decode(buffer))
    val = value_decode(buffer, length_decode(buffer))
    sf.set_value(val)
	  msg.add_sub_field(sf)
  end
end