/// <summary> /// Called when a timer set using <see cref="ITimerService"/> fires. /// </summary> /// <param name="timestamp">The timestamp of the firing timer.</param> /// <param name="context">Allows querying the timestamp, the <see cref="TimeDomain"/>, and the key of the firing timer and getting a <see cref="TimeDomain"/> for registering timers and querying the time. The context is only valid during the invocation of this method, do not store it.</param> /// <param name="output">The collector for returning result values.</param> public abstract void OnTimer(long timestamp, OnTimerContext context, ICollector <TOutput> output);
/// <summary> /// Called when a timer set using <see cref="ITimerService"/> fires. /// </summary> /// <param name="timestamp">The timestamp of the firing timer.</param> /// <param name="context">A <see cref="Context"/> that allows querying the timestamp of the element, querying the <see cref="TimeDomain"/> of the firing timer and getting a <see cref="ITimerService"/> for registering timers and querying the time. The context is only valid during the invocation of this method, do not store it.</param> /// <param name="output">The collector to emit resulting elements to</param> /// <exception cref="Exception">The function may throw exceptions which cause the streaming program to fail and go into recovery.</exception> public virtual void OnTimer(long timestamp, OnTimerContext context, ICollector <TOutput> output) { }