class RFlow::Components::Clock

A clock. It ticks every n seconds. Get it?

Accepts config parameters:

Emits {RFlow::Message}s whose internal type is {RFlow::Message::Clock::Tick}.

Constants

DEFAULT_CONFIG

Default configuration.

Attributes

config[R]

@!visibility private

tick_interval[R]

@!visibility private

Public Instance Methods

clock_name() click to toggle source

@!visibility private

# File lib/rflow/components/clock.rb, line 83
def clock_name; config['name']; end
configure!(config) click to toggle source

RFlow-called method at startup. @param config [Hash] configuration from the RFlow config file @return [void]

# File lib/rflow/components/clock.rb, line 77
def configure!(config)
  @config = DEFAULT_CONFIG.merge config
  @tick_interval = Float(@config['tick_interval'])
end
run!() click to toggle source

RFlow-called method at startup. @return [void]

# File lib/rflow/components/clock.rb, line 87
def run!
  @timer = EventMachine::PeriodicTimer.new(tick_interval) { tick }
end
tick() click to toggle source

@!visibility private

# File lib/rflow/components/clock.rb, line 92
def tick
  tick_port.send_message(RFlow::Message.new('RFlow::Message::Clock::Tick').tap do |m|
    m.data.name = clock_name
    m.data.timestamp = Integer(Time.now.to_f * 1000) # ms since epoch
  end)
end