public class BasicNetworkStatus extends AVListImpl implements NetworkStatus
Modifier and Type | Class and Description |
---|---|
protected static class |
BasicNetworkStatus.HostInfo |
Modifier and Type | Field and Description |
---|---|
protected static int |
DEFAULT_ATTEMPT_LIMIT |
protected static java.lang.String[] |
DEFAULT_NETWORK_TEST_SITES |
protected static long |
DEFAULT_TRY_AGAIN_INTERVAL |
protected java.util.concurrent.ConcurrentHashMap<java.lang.String,BasicNetworkStatus.HostInfo> |
hostMap |
protected java.util.concurrent.atomic.AtomicLong |
lastAvailableLogTime |
protected java.util.concurrent.atomic.AtomicLong |
lastNetworkCheckTime |
protected java.util.concurrent.atomic.AtomicLong |
lastNetworkStatusReportTime |
protected java.util.concurrent.atomic.AtomicBoolean |
lastNetworkUnavailableResult |
protected java.util.concurrent.atomic.AtomicLong |
lastUnavailableLogTime |
protected static long |
NETWORK_STATUS_REPORT_INTERVAL |
HOST_AVAILABLE, HOST_UNAVAILABLE
Constructor and Description |
---|
BasicNetworkStatus() |
Modifier and Type | Method and Description |
---|---|
protected void |
establishNetworkTestSites()
Determines and stores the network sites to test for public network connectivity.
|
int |
getAttemptLimit()
Returns the number of times a host must be logged as unavailable before it is marked unavailable in this class.
|
java.util.List<java.lang.String> |
getNetworkTestSites()
Returns the server domain names of the sites used to test public network availability.
|
long |
getTryAgainInterval()
Returns the length of time to wait until a host is marked as not unreachable subsequent to its being marked
unreachable.
|
protected static boolean |
isHostReachable(java.lang.String hostName)
Determine if a host is reachable by attempting to resolve the host name, and then attempting to open a
connection using either https or http.
|
boolean |
isHostUnavailable(java.net.URL url)
Indicates whether the host has been marked as unavailable.
|
boolean |
isNetworkUnavailable()
Indicates whether a public network can be reached or has been reached in the previous five seconds.
|
boolean |
isNetworkUnavailable(long checkInterval)
Indicates whether a public network can be reached or has been reached in a specified previous amount of time.
|
boolean |
isOfflineMode()
Indicates whether WorldWind will attempt to connect to the network to retrieve data or for other reasons.
|
boolean |
isWorldWindServerUnavailable()
Indicates whether the NASA WorldWind servers can be reached.
|
void |
logAvailableHost(java.net.URL url)
Log a host as available.
|
void |
logUnavailableHost(java.net.URL url)
Log a host as unavailable.
|
void |
setAttemptLimit(int limit)
Sets the number of times a host must be logged as unavailable before it is marked unavailable in this class.
|
void |
setNetworkTestSites(java.util.List<java.lang.String> networkTestSites)
Sets the domain names, e.g., worldwind.arc.nasa.gov, of sites used to determine public network availability.
|
void |
setOfflineMode(boolean offlineMode)
Indicates whether WorldWind should attempt to connect to the network to retrieve data or for other reasons.
|
void |
setTryAgainInterval(long interval)
Sets the length of time to wait until a host is marked as not unreachable subsequent to its being marked
unreachable.
|
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getBooleanValue, getBooleanValue, getChangeSupport, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getRestorableStateForAVPair, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
protected static final int DEFAULT_ATTEMPT_LIMIT
protected static final java.lang.String[] DEFAULT_NETWORK_TEST_SITES
protected static final long DEFAULT_TRY_AGAIN_INTERVAL
protected java.util.concurrent.ConcurrentHashMap<java.lang.String,BasicNetworkStatus.HostInfo> hostMap
protected java.util.concurrent.atomic.AtomicLong lastAvailableLogTime
protected java.util.concurrent.atomic.AtomicLong lastNetworkCheckTime
protected java.util.concurrent.atomic.AtomicLong lastNetworkStatusReportTime
protected java.util.concurrent.atomic.AtomicBoolean lastNetworkUnavailableResult
protected java.util.concurrent.atomic.AtomicLong lastUnavailableLogTime
protected static final long NETWORK_STATUS_REPORT_INTERVAL
protected void establishNetworkTestSites()
AVKey.NETWORK_STATUS_TEST_SITES
). If that
property is not defined, the sites are drawn from the same property in the WorldWind or application
configuration file. If the sites are not specified there, the set of sites specified in DEFAULT_NETWORK_TEST_SITES
are used. To indicate an empty list in the JVM property or configuration file
property, specify an empty site list, "".public int getAttemptLimit()
getAttemptLimit
in interface NetworkStatus
public java.util.List<java.lang.String> getNetworkTestSites()
getNetworkTestSites
in interface NetworkStatus
public long getTryAgainInterval()
getTryAgainInterval
in interface NetworkStatus
protected static boolean isHostReachable(java.lang.String hostName)
hostName
- Name of the host to connect to.true
if a the host is reachable, false
if the host name cannot be resolved, or if opening
a connection to the host fails.public boolean isHostUnavailable(java.net.URL url)
isHostUnavailable
in interface NetworkStatus
url
- a url containing the host to check for availability.public boolean isNetworkUnavailable()
isNetworkUnavailable
in interface NetworkStatus
public boolean isNetworkUnavailable(long checkInterval)
isNetworkUnavailable
in interface NetworkStatus
checkInterval
- the number of milliseconds in the past used to determine whether the server was avaialble
recently.public boolean isOfflineMode()
isOfflineMode
in interface NetworkStatus
true
if WorldWind is in off-line mode, false
if not.public boolean isWorldWindServerUnavailable()
isWorldWindServerUnavailable
in interface NetworkStatus
public void logAvailableHost(java.net.URL url)
logAvailableHost
in interface NetworkStatus
url
- a url containing the host to mark as available.public void logUnavailableHost(java.net.URL url)
logUnavailableHost
in interface NetworkStatus
url
- a url containing the host to mark as unavailable.public void setAttemptLimit(int limit)
setAttemptLimit
in interface NetworkStatus
limit
- the number of log-unavailability invocations necessary to consider the host unreachable.public void setNetworkTestSites(java.util.List<java.lang.String> networkTestSites)
setNetworkTestSites
in interface NetworkStatus
networkTestSites
- the list of desired test sites. The list is copied internally, so changes made to the
submitted list do not affect instances of this class. May be null, in which case no sites
are consulted.public void setOfflineMode(boolean offlineMode)
false
, indicating that the network should be used.setOfflineMode
in interface NetworkStatus
offlineMode
- true
if WorldWind should use the network, false
otherwisepublic void setTryAgainInterval(long interval)
setTryAgainInterval
in interface NetworkStatus
interval
- The length of time, in milliseconds, to wait to unmark a host as unreachable.