Method: Codec::Headerlength#decode

Defined in:
lib/codec/prefix.rb

#decode(buffer) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/codec/prefix.rb', line 70

def decode(buffer)
  f = Field.new
  f.set_id(@id)
  head, buf = @length_codec.decode(buffer)
  head.set_id(@length_codec.id)
  f.add_sub_field(head)
  len = get_length(head)
  if len == 0
    return f,buf
  else
     len -= (buffer.length - buf.length) if @header_length_include
    val,remain = @value_codec.decode_with_length(buf,len)
     val.set_id(@value_codec.id)
	  f.add_sub_field(val)
     return f,remain
  end
end