public class DiscoveryConfigFactory extends Object implements DiscoveryConfigurationFactory
| Modifier and Type | Field and Description |
|---|---|
static char |
COMMENT_CHAR |
static String |
COMMENT_STR |
static int |
DEFAULT_CHUNK_SIZE |
static int |
DEFAULT_INITIAL_SLEEP_TIME |
static double |
DEFAULT_PACKETS_PER_SECOND |
static int |
DEFAULT_RESTART_SLEEP_TIME |
static int |
DEFAULT_RETRIES |
static long |
DEFAULT_TIMEOUT |
| Constructor and Description |
|---|
DiscoveryConfigFactory() |
DiscoveryConfigFactory(DiscoveryConfiguration config) |
| Modifier and Type | Method and Description |
|---|---|
static List<String> |
addToSpecificsFromURL(List<IPPollAddress> specifics,
InputStream is,
String foreignSource,
String location,
long timeout,
int retries,
String url)
addToSpecificsFromURL
|
static List<String> |
addToSpecificsFromURL(List<IPPollAddress> specifics,
String url,
String foreignSource,
String location,
long timeout,
int retries)
The file URL is read and a 'specific IP' is added for each entry
in this file.
|
DiscoveryConfiguration |
getConfiguration()
Return the discovery configuration object.
|
Iterable<IPPollAddress> |
getConfiguredAddresses()
getConfiguredAddresses
|
Iterator<IPPollAddress> |
getExcludingIterator(Iterator<IPPollAddress> it)
getExcludingInterator
|
String |
getForeignSource(InetAddress address)
getForeignSource
|
long |
getInitialSleepTime()
getInitialSleepTime
|
static DiscoveryConfigFactory |
getInstance()
Deprecated.
Inject this value instead of using singleton access.
|
long |
getIntraPacketDelay()
getIntraPacketDelay
|
List<Detector> |
getListOfDetectors(InetAddress inetAddress,
String location) |
double |
getPacketsPerSecond()
getPacketsPerSecond
|
List<IPPollRange> |
getRanges()
getRanges
|
Lock |
getReadLock() |
long |
getRestartSleepTime()
getRestartSleepTime
|
List<IPPollAddress> |
getSpecifics()
getSpecifics
|
List<IPPollAddress> |
getURLSpecifics()
getURLSpecifics
|
Lock |
getWriteLock() |
boolean |
isExcluded(InetAddress address,
String location)
isExcluded
|
void |
reload()
Reload the config from the default config file.
|
void |
saveConfiguration(DiscoveryConfiguration configuration)
saveConfiguration
|
protected void |
saveXml(String xml)
saveXml
|
public static final String COMMENT_STR
public static final char COMMENT_CHAR
public static final double DEFAULT_PACKETS_PER_SECOND
public static final int DEFAULT_INITIAL_SLEEP_TIME
public static final int DEFAULT_RESTART_SLEEP_TIME
public static final int DEFAULT_RETRIES
public static final long DEFAULT_TIMEOUT
public static final int DEFAULT_CHUNK_SIZE
public DiscoveryConfigFactory()
throws IOException
IOExceptionpublic DiscoveryConfigFactory(DiscoveryConfiguration config)
public static DiscoveryConfigFactory getInstance()
public Lock getReadLock()
public Lock getWriteLock()
public void reload()
throws IOException
IOExceptionIOException - Thrown if the specified config file cannot be read/loadedIOException - if any.public DiscoveryConfiguration getConfiguration()
getConfiguration in interface DiscoveryConfigurationFactoryDiscoveryConfiguration object.protected void saveXml(String xml) throws IOException
saveXml
xml - a String object.IOException - if any.public void saveConfiguration(DiscoveryConfiguration configuration) throws IOException
saveConfiguration
configuration - a DiscoveryConfiguration object.IOException - if any.public static List<String> addToSpecificsFromURL(List<IPPollAddress> specifics, String url, String foreignSource, String location, long timeout, int retries)
The file URL is read and a 'specific IP' is added for each entry in this file. Each line in the URL file can be one of - <IP><space>#<comments> or <IP> or #<comments> Lines starting with a '#' are ignored and so are characters after a '<space>#' in a line.
specifics - the list to add tourl - the URL filetimeout - the timeout for all entries in this URLretries - the retries for all entries in this URLpublic static List<String> addToSpecificsFromURL(List<IPPollAddress> specifics, InputStream is, String foreignSource, String location, long timeout, int retries, String url) throws IOException
addToSpecificsFromURL
specifics - a List object.is - a InputStream object.timeout - a long.retries - a int.url - IOException - if any.public List<IPPollAddress> getURLSpecifics()
getURLSpecifics
getURLSpecifics in interface DiscoveryConfigurationFactoryList object.public List<IPPollRange> getRanges()
getRanges
getRanges in interface DiscoveryConfigurationFactoryList object.public List<IPPollAddress> getSpecifics()
getSpecifics
getSpecifics in interface DiscoveryConfigurationFactoryList object.public boolean isExcluded(InetAddress address, String location)
isExcluded
isExcluded in interface DiscoveryConfigurationFactoryaddress - a InetAddress object.location - public String getForeignSource(InetAddress address)
DiscoveryConfigurationFactorygetForeignSource
getForeignSource in interface DiscoveryConfigurationFactoryaddress - InetAddresspublic List<Detector> getListOfDetectors(InetAddress inetAddress, String location)
getListOfDetectors in interface DiscoveryConfigurationFactorypublic double getPacketsPerSecond()
getPacketsPerSecond
getPacketsPerSecond in interface DiscoveryConfigurationFactorypublic long getIntraPacketDelay()
getIntraPacketDelay
getIntraPacketDelay in interface DiscoveryConfigurationFactorypublic Iterator<IPPollAddress> getExcludingIterator(Iterator<IPPollAddress> it)
getExcludingInterator
getExcludingIterator in interface DiscoveryConfigurationFactoryit - a Iterator object.Iterator object.public Iterable<IPPollAddress> getConfiguredAddresses()
getConfiguredAddresses
TODO: This function is inefficient. It has O(n^2) complexity based on the product of the include ranges and exclude ranges. This might cause problems if users are using a large number of excluded ranges.getConfiguredAddresses in interface DiscoveryConfigurationFactoryIterable object.public long getRestartSleepTime()
getRestartSleepTime
getRestartSleepTime in interface DiscoveryConfigurationFactorypublic long getInitialSleepTime()
getInitialSleepTime
getInitialSleepTime in interface DiscoveryConfigurationFactoryCopyright © 2022. All rights reserved.