- 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
Modifier and TypeFieldDescriptionstatic 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 TypeMethodDescriptionReturns the collection of all components tracked by this instance.allKeys()
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 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
removeStaleComponents
(long now) Remove components which are deemed stale.
-
Field Details
-
DEFAULT_TIMEOUT
The default timeout duration is 30 minutes- See Also:
-
DEFAULT_MAX_COMPONENTS
By default an unlimited number of elements can be tracked.- See Also:
-
-
Method Details
-
getComponentCount
int getComponentCount()Returns the number of components tracked.- Returns:
- number of components
-
find
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
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
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
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:
-