ch.qos.logback.core.spi
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
static int DEFAULT_MAX_COMPONENTS
          By default an unlimited number of elements can be tracked.
static int DEFAULT_TIMEOUT
          The default timeout duration is 30 minutes
 
Method Summary
 Collection<C> allComponents()
          Returns the collection of all components tracked by this instance.
 Set<String> allKeys()
          Set of all keys in this tracker in no particular order.
 void endOfLife(String key)
          Mark component identified by 'key' as having reached its end-of-life.
 C find(String key)
          Find the component identified by 'key', without updating the timestamp.
 int getComponentCount()
          Returns the number of components tracked.
 C 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 Detail

DEFAULT_TIMEOUT

static final int DEFAULT_TIMEOUT
The default timeout duration is 30 minutes

See Also:
Constant Field Values

DEFAULT_MAX_COMPONENTS

static final int DEFAULT_MAX_COMPONENTS
By default an unlimited number of elements can be tracked.

See Also:
Constant Field Values
Method Detail

getComponentCount

int 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

Collection<C> allComponents()
Returns the collection of all components tracked by this instance.

Returns:
collection of components

allKeys

Set<String> allKeys()
Set of all keys in this tracker in no particular order.

Returns:


Copyright © 2005-2013 QOS.ch. All Rights Reserved.