Interface ComponentTracker<C>

All Known Implementing Classes:
AbstractComponentTracker, AppenderTracker, CyclicBufferTracker

public interface ComponentTracker<C>
Interface for tracking various components by key. Components which have not been accessed for more than a user-specified duration are deemed stale and removed. Components can also be explicitly marked as having reached their endOfLife(String) in which case they will linger for a few seconds and then be removed.
Since:
1.0.12
Author:
Tommy Becker, Ceki Gulcu, David Roussel
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    By default an unlimited number of elements can be tracked.
    static final int
    The default timeout duration is 30 minutes
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the collection of all components tracked by this instance.
    Set of all keys in this tracker in no particular order.
    void
    Mark component identified by 'key' as having reached its end-of-life.
    find(String key)
    Find the component identified by 'key', without updating the timestamp.
    int
    Returns the number of components tracked.
    getOrCreate(String key, long timestamp)
    Get the component identified by 'key', updating its timestamp in the process.
    void
    Remove components which are deemed stale.
  • Field Details

  • Method Details

    • getComponentCount

      Returns the number of components tracked.
      Returns:
      number of components
    • find

      C find(String key)
      Find the component identified by 'key', without updating the timestamp. Returns null if no corresponding component could be found.
      Parameters:
      key -
      Returns:
      corresponding component, may be null
    • getOrCreate

      C getOrCreate(String key, long timestamp)
      Get the component identified by 'key', updating its timestamp in the process. If the corresponding component could not be found, it is created.
      Parameters:
      key -
      timestamp -
      Returns:
    • removeStaleComponents

      void removeStaleComponents(long now)
      Remove components which are deemed stale. Components which have not been accessed for more than a user-specified duration are deemed stale.

      If the number of components exceeds, getComponentCount(), components in excess will be removed.

      Depending on the component type, components will be cleared or stopped (as appropriate) right before removal.

      Parameters:
      now - current time in milliseconds
    • endOfLife

      void endOfLife(String key)
      Mark component identified by 'key' as having reached its end-of-life. End-of-lifed components will linger for a few more seconds before being removed.
      Parameters:
      key -
    • allComponents

      Returns the collection of all components tracked by this instance.
      Returns:
      collection of components
    • allKeys

      Set of all keys in this tracker in no particular order.
      Returns: