class Fluent::MultiEventStream
EventStream from entries: numbers of pairs of time and record.
This class can handle many events more efficiently than ArrayEventStream because this class generate less objects than ArrayEventStream.
Use this class as below, in loop of data-enumeration:
1. initialize blank stream: streams[tag] ||= MultiEventStream.new 2. add events stream[tag].add(time, record)
Public Class Methods
new(time_array = [], record_array = [])
click to toggle source
# File lib/fluent/event.rb, line 162 def initialize(time_array = [], record_array = []) @time_array = time_array @record_array = record_array end
Public Instance Methods
add(time, record)
click to toggle source
# File lib/fluent/event.rb, line 175 def add(time, record) @time_array << time @record_array << record end
dup()
click to toggle source
# File lib/fluent/event.rb, line 167 def dup MultiEventStream.new(@time_array.dup, @record_array.map(&:dup)) end
each(unpacker: nil, &block)
click to toggle source
# File lib/fluent/event.rb, line 192 def each(unpacker: nil, &block) time_array = @time_array record_array = @record_array for i in 0..time_array.length-1 block.call(time_array[i], record_array[i]) end nil end
empty?()
click to toggle source
# File lib/fluent/event.rb, line 184 def empty? @time_array.empty? end
repeatable?()
click to toggle source
# File lib/fluent/event.rb, line 180 def repeatable? true end
size()
click to toggle source
# File lib/fluent/event.rb, line 171 def size @time_array.size end
slice(index, num)
click to toggle source
# File lib/fluent/event.rb, line 188 def slice(index, num) MultiEventStream.new(@time_array.slice(index, num), @record_array.slice(index, num)) end