Method: Codec::Headerlength#decode

Defined in:
lib/codec/prefix.rb

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



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/codec/prefix.rb', line 61

def decode(buffer, f, length=nil)
   f.set_value("") # reinit field value
   buffer = buffer.slice!(0...length) if length && length > 0
   initial_len = buffer.size
   head = Field.new(@header_id)
   content = Field.new(@content_id)
  @length_codec.decode(buffer,head)
   h_len = initial_len - buffer.size
  f.add_sub_field(head)
  len = get_length(head)
  if len > 0
     len -= h_len if @total_length
    @value_codec.decode(buffer, content, len)
	  f.add_sub_field(content)
  end
end