NASA World Wind

gov.nasa.worldwind.util
Class AbsentResourceList

java.lang.Object
  extended by gov.nasa.worldwind.util.AbsentResourceList

public class AbsentResourceList
extends Object

Maintains a list of missing resources. Once added, a resource is considered absent until a specified time interval elapses. If marked absent a specified number of times, the resource is considered permanently absent until a second time interval expires -- the try-again interval -- at which time the resource is considered not absent, indicating that the caller may attempt to find the resource again. If the resource is subsequently marked absent, the cycle repeats.


Nested Class Summary
protected static class AbsentResourceList.AbsentResourceEntry
          Internal class that maintains a resource's state.
 
Field Summary
protected static int DEFAULT_MAX_ABSENT_RESOURCE_TRIES
          The default number of times a resource is marked as absent before being marked as permanently absent.
protected static int DEFAULT_MIN_ABSENT_RESOURCE_CHECK_INTERVAL
          The default interval to wait before indicating the resource is not absent.
protected static int DEFAULT_TRY_AGAIN_INTERVAL
          The default interval at which a resources is marked as not absent after having been marked permanently absent.
protected  int maxTries
          The maximum number of times a resource is marked as absent before being marked as permanently absent.
protected  int minCheckInterval
          The interval to wait, in milliseconds, before indicating the resource is not absent.
protected  BasicSessionCache possiblyAbsent
          The map of absent resources.
protected  int tryAgainInterval
          The interval at which a resource is marked as not absent after having been marked as permanently absent.
 
Constructor Summary
AbsentResourceList()
          Construct an absent-resource list with default values for max tries (3), check interval (10 seconds) and try-again interval (60 seconds).
AbsentResourceList(Integer cacheSize, int maxTries, int minCheckInterval, int tryAgainInterval)
          Construct an absent-resource list with a specified number of maximum tries, a check interval and a retry interval.
AbsentResourceList(int maxTries, int minCheckInterval)
          Construct an absent-resource list with a specified number of maximum tries and a check interval.
 
Method Summary
 int getMaxTries()
          Indicates the maximum number of times a resource is marked as absent before being marked as permanently absent.
 int getMinCheckInterval()
          Indicates the time interval that must elapse before the resource is considered not absent if its max-tries has not been reached.
 int getTryAgainInterval()
          Indicates the time interval that must elapse before a resource marked as permanently absent is again considered not absent.
 boolean isResourceAbsent(long resourceID)
          Indicates whether a resource is considered absent.
 boolean isResourceAbsent(String resourceID)
          Indicates whether a resource is considered absent.
 void markResourceAbsent(long resourceID)
          Mark a specified resource as absent.
 void markResourceAbsent(String resourceID)
          Mark a specified resource as absent.
 void setMaxTries(int maxTries)
          Specifies the maximum number of times a resource is marked as absent before being marked as permanently absent.
 void setMinCheckInterval(int minCheckInterval)
          Specifies the time interval that must elapse before the resource is considered absent if its max-tries has not been reached.
 void setTryAgainInterval(int tryAgainInterval)
          Specifies the time interval that must elapse before a resource marked as permanently absent is again considered not absent.
 void unmarkResourceAbsent(long resourceID)
          Mark the resource as not-absent, effectively removing it from this absent-resource list.
 void unmarkResourceAbsent(String resourceID)
          Remove a resource from this absent-resource list if the resource is contained in the list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MAX_ABSENT_RESOURCE_TRIES

protected static final int DEFAULT_MAX_ABSENT_RESOURCE_TRIES
The default number of times a resource is marked as absent before being marked as permanently absent.

See Also:
Constant Field Values

DEFAULT_MIN_ABSENT_RESOURCE_CHECK_INTERVAL

protected static final int DEFAULT_MIN_ABSENT_RESOURCE_CHECK_INTERVAL
The default interval to wait before indicating the resource is not absent.

See Also:
Constant Field Values

DEFAULT_TRY_AGAIN_INTERVAL

protected static final int DEFAULT_TRY_AGAIN_INTERVAL
The default interval at which a resources is marked as not absent after having been marked permanently absent.

See Also:
Constant Field Values

maxTries

protected int maxTries
The maximum number of times a resource is marked as absent before being marked as permanently absent.


minCheckInterval

protected int minCheckInterval
The interval to wait, in milliseconds, before indicating the resource is not absent.


possiblyAbsent

protected BasicSessionCache possiblyAbsent
The map of absent resources.


tryAgainInterval

protected int tryAgainInterval
The interval at which a resource is marked as not absent after having been marked as permanently absent.

Constructor Detail

AbsentResourceList

public AbsentResourceList()
Construct an absent-resource list with default values for max tries (3), check interval (10 seconds) and try-again interval (60 seconds).


AbsentResourceList

public AbsentResourceList(Integer cacheSize,
                          int maxTries,
                          int minCheckInterval,
                          int tryAgainInterval)
Construct an absent-resource list with a specified number of maximum tries, a check interval and a retry interval.

Parameters:
cacheSize - the maximum number of absent resources the list may hold. If this limit is exceeded, the oldest entries in the list are ejected and the resources they refer to are subsequently not considered to be absent resources.
maxTries - the number of max tries. Must be greater than 0.
minCheckInterval - the check interval. Must be greater than or equal to 0.
tryAgainInterval - the try-again interval. Must be greater than or equal to 0.
Throws:
IllegalArgumentException - if max-tries is less than 1 or if either the minimum check interval or try-again interval is less than 0.

AbsentResourceList

public AbsentResourceList(int maxTries,
                          int minCheckInterval)
Construct an absent-resource list with a specified number of maximum tries and a check interval.

Parameters:
maxTries - the number of max tries. Must be greater than 0.
minCheckInterval - the check interval. Must be greater than or equal to 0.
Throws:
IllegalArgumentException - if max-tries is less than 1 or the minimum check interval is less than 0.
Method Detail

getMaxTries

public int getMaxTries()
Indicates the maximum number of times a resource is marked as absent before being marked as permanently absent.

Returns:
the maximum number of absent markings.

getMinCheckInterval

public int getMinCheckInterval()
Indicates the time interval that must elapse before the resource is considered not absent if its max-tries has not been reached.

Returns:
the interval, in milliseconds.

getTryAgainInterval

public int getTryAgainInterval()
Indicates the time interval that must elapse before a resource marked as permanently absent is again considered not absent. This effectively expires the absent state of the resource.

Returns:
the interval, in milliseconds.

isResourceAbsent

public final boolean isResourceAbsent(long resourceID)
Indicates whether a resource is considered absent.

Parameters:
resourceID - the resource in question.
Returns:
true if the resource is considered absent, otherwise false.

isResourceAbsent

public final boolean isResourceAbsent(String resourceID)
Indicates whether a resource is considered absent.

Parameters:
resourceID - the resource in question.
Returns:
true if the resource is considered absent, otherwise false.

markResourceAbsent

public final void markResourceAbsent(long resourceID)
Mark a specified resource as absent. If the resource is already marked as absent, its max-tries value is incremented.

Parameters:
resourceID - the resource to mark as absent.

markResourceAbsent

public final void markResourceAbsent(String resourceID)
Mark a specified resource as absent. If the resource is already marked as absent, its max-tries value is incremented.

Parameters:
resourceID - the resource to mark as absent.

setMaxTries

public void setMaxTries(int maxTries)
Specifies the maximum number of times a resource is marked as absent before being marked as permanently absent.

Parameters:
maxTries - the number of max tries. Must be greater than 0.
Throws:
IllegalArgumentException - if max-tries is less than 1.

setMinCheckInterval

public void setMinCheckInterval(int minCheckInterval)
Specifies the time interval that must elapse before the resource is considered absent if its max-tries has not been reached.

Parameters:
minCheckInterval - the check interval. Must be greater than or equal to 0.
Throws:
IllegalArgumentException - if the minimum check interval is less than 0.

setTryAgainInterval

public void setTryAgainInterval(int tryAgainInterval)
Specifies the time interval that must elapse before a resource marked as permanently absent is again considered not absent. This effectively expires the absent state of the resource.

Parameters:
tryAgainInterval - the try-again interval. Must be greater than or equal to 0.
Throws:
IllegalArgumentException - if the try-again interval is less than 0.

unmarkResourceAbsent

public final void unmarkResourceAbsent(long resourceID)
Mark the resource as not-absent, effectively removing it from this absent-resource list.

Parameters:
resourceID - the resource to mark as not absent.

unmarkResourceAbsent

public final void unmarkResourceAbsent(String resourceID)
Remove a resource from this absent-resource list if the resource is contained in the list.

Parameters:
resourceID - the resource to remove from this list.

NASA World Wind