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