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
IOException
public DiscoveryConfigFactory(DiscoveryConfiguration config)
public static DiscoveryConfigFactory getInstance()
public Lock getReadLock()
public Lock getWriteLock()
public void reload() throws IOException
IOException
IOException
- Thrown if the specified config file cannot be read/loadedIOException
- if any.public DiscoveryConfiguration getConfiguration()
getConfiguration
in interface DiscoveryConfigurationFactory
DiscoveryConfiguration
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 DiscoveryConfigurationFactory
List
object.public List<IPPollRange> getRanges()
getRanges
getRanges
in interface DiscoveryConfigurationFactory
List
object.public List<IPPollAddress> getSpecifics()
getSpecifics
getSpecifics
in interface DiscoveryConfigurationFactory
List
object.public boolean isExcluded(InetAddress address, String location)
isExcluded
isExcluded
in interface DiscoveryConfigurationFactory
address
- a InetAddress
object.location
- public String getForeignSource(InetAddress address)
DiscoveryConfigurationFactory
getForeignSource
getForeignSource
in interface DiscoveryConfigurationFactory
address
- InetAddresspublic List<Detector> getListOfDetectors(InetAddress inetAddress, String location)
getListOfDetectors
in interface DiscoveryConfigurationFactory
public double getPacketsPerSecond()
getPacketsPerSecond
getPacketsPerSecond
in interface DiscoveryConfigurationFactory
public long getIntraPacketDelay()
getIntraPacketDelay
getIntraPacketDelay
in interface DiscoveryConfigurationFactory
public Iterator<IPPollAddress> getExcludingIterator(Iterator<IPPollAddress> it)
getExcludingInterator
getExcludingIterator
in interface DiscoveryConfigurationFactory
it
- 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 DiscoveryConfigurationFactory
Iterable
object.public long getRestartSleepTime()
getRestartSleepTime
getRestartSleepTime
in interface DiscoveryConfigurationFactory
public long getInitialSleepTime()
getInitialSleepTime
getInitialSleepTime
in interface DiscoveryConfigurationFactory
Copyright © 2021. All rights reserved.