Class: LogStash::Codecs::Frame

Inherits:
Base
  • Object
show all
Defined in:
lib/logstash/codecs/frame.rb

Overview

Frame-oriented text data.

Decoding behavior: Only whole frame events will be emitted.

Encoding behavior: Each event will be emitted with a prefixed <length><delimiter>.

Instance Method Summary collapse

Instance Method Details

#decode(data) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/logstash/codecs/frame.rb', line 32

def decode(data)
  @buffer += data
  while (nextMessage)
    yield LogStash::Event.new("message" => @converter.convert(@buffer[@offset, @frameLength]))
    @buffer.slice!(0, @offset + @frameLength)
    @offset = nil
  end
end

#encode(event) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/logstash/codecs/frame.rb', line 42

def encode(event)
  if event.is_a? LogStash::Event and @format
    @on_event.call(event, encodeFrameLength(event.sprintf(@format)))
  else
    @on_event.call(event, encodeFrameLength(event.to_s))
  end
end

#registerObject



23
24
25
26
27
28
29
# File 'lib/logstash/codecs/frame.rb', line 23

def register
  @buffer = ""
  @offset
  @frame_length
  @converter = LogStash::Util::Charset.new(@charset)
  @converter.logger = @logger
end