Package org.apache.storm.windowing

## Class CountEvictionPolicy<T>

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

- Type Parameters:
    `T` - the type of event tracked by this policy.
  All Implemented Interfaces:
    `EvictionPolicy<T,​Long>`

      public class CountEvictionPolicy<T>
      extends Object
      implements EvictionPolicy<T,​Long>

  An eviction policy that tracks event counts and can evict based on a threshold count.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.storm.windowing.EvictionPolicy

      `EvictionPolicy.Action`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected AtomicLong` | `currentCount` |
    `protected int` | `threshold` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CountEvictionPolicy​(int count)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `EvictionPolicy.Action` | `evict​(Event<T> event)` | Decides if an event should be expired from the window, processed in the current window or kept for later processing.
    `EvictionContext` | `getContext()` | Returns the current context that is part of this eviction policy.
    `Long` | `getState()` | Return runtime state to be checkpointed by the framework for restoring the eviction policy in case of failures.
    `void` | `reset()` | Resets the eviction policy.
    `void` | `restoreState​(Long state)` | Restore the eviction policy from the state that was earlier checkpointed by the framework.
    `void` | `setContext​(EvictionContext context)` | Sets a context in the eviction policy that can be used while evicting the events.
    `String` | `toString()` |
    `void` | `track​(Event<T> event)` | Tracks the event to later decide whether `EvictionPolicy.evict(Event)` should evict it or not.

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

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

- - ### Field Detail

    - #### threshold

          protected final int threshold

    - #### currentCount

          protected final AtomicLong currentCount

  - ### Constructor Detail

    - #### CountEvictionPolicy

          public CountEvictionPolicy​(int count)

  - ### Method Detail

    - #### evict

          public EvictionPolicy.Action evict​(Event<T> event)

      Description copied from interface: `EvictionPolicy`
      Decides if an event should be expired from the window, processed in the current window or kept for later processing.
      Specified by:
        `evict` in interface `EvictionPolicy<T,​Long>`
      Parameters:
        `event` - the input event
      Returns:
        the `EvictionPolicy.Action` to be taken based on the input event

    - #### track

          public void track​(Event<T> event)

      Description copied from interface: `EvictionPolicy`
      Tracks the event to later decide whether `EvictionPolicy.evict(Event)` should evict it or not.
      Specified by:
        `track` in interface `EvictionPolicy<T,​Long>`
      Parameters:
        `event` - the input event to be tracked

    - #### getContext

          public EvictionContext getContext()

      Description copied from interface: `EvictionPolicy`
      Returns the current context that is part of this eviction policy.
      Specified by:
        `getContext` in interface `EvictionPolicy<T,​Long>`
      Returns:
        the eviction context

    - #### setContext

          public void setContext​(EvictionContext context)

      Description copied from interface: `EvictionPolicy`
      Sets a context in the eviction policy that can be used while evicting the events. E.g. For TimeEvictionPolicy, this could be used to set the reference timestamp.
      Specified by:
        `setContext` in interface `EvictionPolicy<T,​Long>`
      Parameters:
        `context` - the eviction context

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### reset

          public void reset()

      Description copied from interface: `EvictionPolicy`
      Resets the eviction policy.
      Specified by:
        `reset` in interface `EvictionPolicy<T,​Long>`

    - #### getState

          public Long getState()

      Description copied from interface: `EvictionPolicy`
      Return runtime state to be checkpointed by the framework for restoring the eviction policy in case of failures.
      Specified by:
        `getState` in interface `EvictionPolicy<T,​Long>`
      Returns:
        the state

    - #### restoreState

          public void restoreState​(Long state)

      Description copied from interface: `EvictionPolicy`
      Restore the eviction policy from the state that was earlier checkpointed by the framework.
      Specified by:
        `restoreState` in interface `EvictionPolicy<T,​Long>`
      Parameters:
        `state` - the state