Method: Codec::Prefixedlength#decode

Defined in:
lib/codec/prefix.rb

#decode(buffer) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/codec/prefix.rb', line 14

def decode(buffer)
  l, buf = @length_codec.decode(buffer)
 len = get_length(l)
 if len == 0
   f = Field.new
  f.set_id(@id)
  f.set_value(nil)
  return f,buf
 else
   begin
    f,remain = @value_codec.decode_with_length(buf,len)
  rescue => e
    Logger.error "Error in #{@id} decoder \n #{e.message}\n#{e.backtrace.join(10.chr)}"
    raise ParsingException, e.message
  end
    
    f.set_id(@id)
    return f,remain
 end
end