Class: Pione::Agent::InputGenerator::StreamGeneratorMethod

Inherits:
GeneratorMethod
  • Object
show all
Defined in:
lib/pione/agent/input-generator.rb

Overview

StreamGeneratorMethod handles stream inputs.

Instance Method Summary collapse

Methods inherited from GeneratorMethod

#now

Constructor Details

#initialize(ts_server, dir_path) ⇒ StreamGeneratorMethod

Returns a new instance of StreamGeneratorMethod.

Raises:

  • (TypeError)


58
59
60
61
62
63
64
# File 'lib/pione/agent/input-generator.rb', line 58

def initialize(ts_server, dir_path)
  raise TypeError.new(dir_path) unless dir_path.kind_of?(URI) or dir_path.nil?
  super(ts_server)
  @dir_path = dir_path
  @table = Hash.new
  init
end

Instance Method Details

#generateObject



66
67
68
69
70
71
72
73
74
# File 'lib/pione/agent/input-generator.rb', line 66

def generate
  item = @gen.next
  if generate_new_file?(item.basename, item.mtime)
    @table[item.basename] = item.mtime
    return InputData.new(item.basename, item.uri, item.mtime)
  else
    return nil
  end
end

#initObject

Initializes the generator. This method is called when root rule is requested in stream mode.



79
80
81
82
83
84
85
# File 'lib/pione/agent/input-generator.rb', line 79

def init
  if @dir_path
    @gen = Resource[@dir_path].entries.to_enum
  else
    @gen = [].each
  end
end

#stream?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


88
89
90
# File 'lib/pione/agent/input-generator.rb', line 88

def stream?
  return true
end