Package org.apache.storm.windowing

## Class WaterMarkEventGenerator<T>

- java.lang.Object
- - org.apache.storm.windowing.WaterMarkEventGenerator<T>

- All Implemented Interfaces:
    `Runnable`

      public class WaterMarkEventGenerator<T>
      extends Object
      implements Runnable

  Tracks tuples across input streams and periodically emits watermark events. Watermark event timestamp is the minimum of the latest tuple timestamps across all the input streams (minus the lag). Once a watermark event is emitted any tuple coming with an earlier timestamp can be considered as late events.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `WaterMarkEventGenerator​(WindowManager<T> windowManager, int intervalMs, int eventTsLagMs, Set<GlobalStreamId> inputStreams)` | Creates a new WatermarkEventGenerator.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `run()` |
    `void` | `shutdown()` |
    `void` | `start()` |
    `boolean` | `track​(GlobalStreamId stream, long ts)` | Tracks the timestamp of the event in the stream, returns true if the event can be considered for processing or false if its a late event.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### WaterMarkEventGenerator

          public WaterMarkEventGenerator​(WindowManager<T> windowManager,
                                         int intervalMs,
                                         int eventTsLagMs,
                                         Set<GlobalStreamId> inputStreams)

      Creates a new WatermarkEventGenerator.
      Parameters:
        `windowManager` - The window manager this generator will submit watermark events to
        `intervalMs` - The generator will check if it should generate a watermark event with this interval
        `eventTsLagMs` - The max allowed lag behind the last watermark event before an event is considered late
        `inputStreams` - The input streams this generator is expected to handle

  - ### Method Detail

    - #### track

          public boolean track​(GlobalStreamId stream,
                               long ts)

      Tracks the timestamp of the event in the stream, returns true if the event can be considered for processing or false if its a late event.

    - #### run

          public void run()

      Specified by:
        `run` in interface `Runnable`

    - #### start

          public void start()

    - #### shutdown

          public void shutdown()