Class: Cosmos::WatermarkProcessor

Inherits:
Processor show all
Defined in:
lib/cosmos/processors/watermark_processor.rb

Instance Attribute Summary

Attributes inherited from Processor

#name, #results, #value_type

Instance Method Summary collapse

Methods inherited from Processor

#clone, #to_s

Constructor Details

#initialize(item_name, value_type = :CONVERTED) ⇒ WatermarkProcessor

Returns a new instance of WatermarkProcessor.

Parameters:

  • item_name (String)

    The name of the item to gather statistics on

  • value_type (defaults to: :CONVERTED)

    #See Processor::initialize



19
20
21
22
23
# File 'lib/cosmos/processors/watermark_processor.rb', line 19

def initialize(item_name, value_type = :CONVERTED)
  super(value_type)
  @item_name = item_name.to_s.upcase
  reset()
end

Instance Method Details

#call(packet, buffer) ⇒ Object

Run watermarks on the item

See Processor#call



28
29
30
31
32
33
34
# File 'lib/cosmos/processors/watermark_processor.rb', line 28

def call(packet, buffer)
  value = packet.read(@item_name, @value_type, buffer)
  high_water = @results[:HIGH_WATER]
  @results[:HIGH_WATER] = value if !high_water or value > high_water
  low_water = @results[:LOW_WATER]
  @results[:LOW_WATER] = value if !low_water or value < low_water
end

#resetObject

Reset any state



37
38
39
40
# File 'lib/cosmos/processors/watermark_processor.rb', line 37

def reset
  @results[:HIGH_WATER] = nil
  @results[:LOW_WATER] = nil
end