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
2. add events
   stream[tag].add(time, record)

Public Class Methods

new() click to toggle source
# File lib/fluent/event.rb, line 99
def initialize
  @time_array = []
  @record_array = []
end

Public Instance Methods

add(time, record) click to toggle source
# File lib/fluent/event.rb, line 112
def add(time, record)
  @time_array << time
  @record_array << record
end
dup() click to toggle source
# File lib/fluent/event.rb, line 104
def dup
  es = MultiEventStream.new
  @time_array.zip(@record_array).each { |time, record|
    es.add(time, record.dup)
  }
  es
end
each(&block) click to toggle source
# File lib/fluent/event.rb, line 125
def each(&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 121
def empty?
  @time_array.empty?
end
repeatable?() click to toggle source
# File lib/fluent/event.rb, line 117
def repeatable?
  true
end