Class AllTrackersManagerImpl
- java.lang.Object
-
- com.biglybt.core.tracker.alltrackers.AllTrackersManagerImpl
-
- All Implemented Interfaces:
TOTorrentListener
,AllTrackersManager.AllTrackers
public class AllTrackersManagerImpl extends java.lang.Object implements AllTrackersManager.AllTrackers, TOTorrentListener
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AllTrackersManagerImpl.AllTrackersEventImpl
private class
AllTrackersManagerImpl.AllTrackersTrackerImpl
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<TRTrackerAnnouncerRequest,java.lang.String>
active_requests
private AllTrackersManager.AnnounceStatsProvider
announce_provider
private Average
announce_rate
private AllTrackersManager.AnnounceStats
announce_stats
private static java.lang.String
CONFIG_FILE
private static java.lang.String
CONFIG_PRIVATE_ACTIVE_AT_CLOSE
private Core
core
private java.util.Map<HashWrapper,java.lang.String>
dm_name_cache
private boolean
got_running
private java.util.Map<java.lang.String,AllTrackersManagerImpl.AllTrackersTrackerImpl>
host_map
private MovingImmediateAverage
lag_average
(package private) static int
LAG_CHECK_PERIOD
(package private) static int
LAG_CHECK_TICKS
private boolean
lag_logged
private CopyOnWriteList<AllTrackersManager.AllTrackersListener>
listeners
private java.util.Map<java.lang.String,LoggerChannel>
logging_keys
(package private) static int
MAX_TRACKERS
private java.util.concurrent.atomic.AtomicLong
options_mutation_count
private java.util.List<TOTorrent>
pending_torrents
private java.lang.Object
process_lock
(package private) static int
SAVE_PERIOD
(package private) static int
SAVE_TICKS
private AllTrackersManager.ScrapeStatsProvider
scrape_provider
private Average
scrape_rate
private AllTrackersManager.ScrapeStats
scrape_stats
private static AllTrackersManagerImpl
singleton
private long
start_time
private boolean
stopping
(package private) static int
TICK_PERIOD
private java.util.concurrent.ConcurrentLinkedDeque<java.lang.Object[]>
update_queue
-
Fields inherited from interface com.biglybt.core.torrent.TOTorrentListener
CT_ANNOUNCE_URLS
-
-
Constructor Summary
Constructors Modifier Constructor Description private
AllTrackersManagerImpl()
-
Method Summary
-
-
-
Field Detail
-
MAX_TRACKERS
static final int MAX_TRACKERS
- See Also:
- Constant Field Values
-
TICK_PERIOD
static final int TICK_PERIOD
- See Also:
- Constant Field Values
-
SAVE_PERIOD
static final int SAVE_PERIOD
- See Also:
- Constant Field Values
-
SAVE_TICKS
static final int SAVE_TICKS
- See Also:
- Constant Field Values
-
LAG_CHECK_PERIOD
static final int LAG_CHECK_PERIOD
- See Also:
- Constant Field Values
-
LAG_CHECK_TICKS
static final int LAG_CHECK_TICKS
- See Also:
- Constant Field Values
-
CONFIG_FILE
private static final java.lang.String CONFIG_FILE
- See Also:
- Constant Field Values
-
CONFIG_PRIVATE_ACTIVE_AT_CLOSE
private static final java.lang.String CONFIG_PRIVATE_ACTIVE_AT_CLOSE
- See Also:
- Constant Field Values
-
singleton
private static final AllTrackersManagerImpl singleton
-
start_time
private final long start_time
-
core
private final Core core
-
stopping
private volatile boolean stopping
-
host_map
private java.util.Map<java.lang.String,AllTrackersManagerImpl.AllTrackersTrackerImpl> host_map
-
update_queue
private java.util.concurrent.ConcurrentLinkedDeque<java.lang.Object[]> update_queue
-
listeners
private CopyOnWriteList<AllTrackersManager.AllTrackersListener> listeners
-
active_requests
private java.util.Map<TRTrackerAnnouncerRequest,java.lang.String> active_requests
-
got_running
private boolean got_running
-
process_lock
private final java.lang.Object process_lock
-
pending_torrents
private java.util.List<TOTorrent> pending_torrents
-
logging_keys
private java.util.Map<java.lang.String,LoggerChannel> logging_keys
-
dm_name_cache
private java.util.Map<HashWrapper,java.lang.String> dm_name_cache
-
options_mutation_count
private java.util.concurrent.atomic.AtomicLong options_mutation_count
-
lag_average
private MovingImmediateAverage lag_average
-
lag_logged
private boolean lag_logged
-
announce_rate
private final Average announce_rate
-
scrape_rate
private final Average scrape_rate
-
announce_stats
private AllTrackersManager.AnnounceStats announce_stats
-
scrape_stats
private volatile AllTrackersManager.ScrapeStats scrape_stats
-
announce_provider
private AllTrackersManager.AnnounceStatsProvider announce_provider
-
scrape_provider
private AllTrackersManager.ScrapeStatsProvider scrape_provider
-
-
Method Detail
-
getSingleton
public static AllTrackersManager.AllTrackers getSingleton()
-
isStopping
public boolean isStopping()
- Specified by:
isStopping
in interfaceAllTrackersManager.AllTrackers
-
checkLag
private void checkLag()
-
processUpdates
private void processUpdates(boolean for_close)
-
loadConfig
private void loadConfig()
-
saveConfig
private void saveConfig(boolean closing)
-
updateLogging
private void updateLogging()
-
registerAnnounceStatsProvider
public void registerAnnounceStatsProvider(AllTrackersManager.AnnounceStatsProvider provider)
- Specified by:
registerAnnounceStatsProvider
in interfaceAllTrackersManager.AllTrackers
-
registerScrapeStatsProvider
public void registerScrapeStatsProvider(AllTrackersManager.ScrapeStatsProvider provider)
- Specified by:
registerScrapeStatsProvider
in interfaceAllTrackersManager.AllTrackers
-
addActiveRequest
public void addActiveRequest(TRTrackerAnnouncerRequest request)
- Specified by:
addActiveRequest
in interfaceAllTrackersManager.AllTrackers
-
removeActiveRequest
public void removeActiveRequest(TRTrackerAnnouncerRequest request)
- Specified by:
removeActiveRequest
in interfaceAllTrackersManager.AllTrackers
-
addScrapeRequest
public void addScrapeRequest()
- Specified by:
addScrapeRequest
in interfaceAllTrackersManager.AllTrackers
-
removeScrapeRequest
public void removeScrapeRequest()
- Specified by:
removeScrapeRequest
in interfaceAllTrackersManager.AllTrackers
-
getActiveRequestCount
public int getActiveRequestCount()
- Specified by:
getActiveRequestCount
in interfaceAllTrackersManager.AllTrackers
-
getAnnouncesPerSecond
public float getAnnouncesPerSecond()
- Specified by:
getAnnouncesPerSecond
in interfaceAllTrackersManager.AllTrackers
-
getScrapesPerSecond
public float getScrapesPerSecond()
- Specified by:
getScrapesPerSecond
in interfaceAllTrackersManager.AllTrackers
-
getAnnounceStats
public AllTrackersManager.AnnounceStats getAnnounceStats()
- Specified by:
getAnnounceStats
in interfaceAllTrackersManager.AllTrackers
-
getScrapeStats
public AllTrackersManager.ScrapeStats getScrapeStats()
- Specified by:
getScrapeStats
in interfaceAllTrackersManager.AllTrackers
-
getTrackerCount
public int getTrackerCount()
- Specified by:
getTrackerCount
in interfaceAllTrackersManager.AllTrackers
-
registerTorrent
public void registerTorrent(TOTorrent torrent)
- Specified by:
registerTorrent
in interfaceAllTrackersManager.AllTrackers
-
registerTorrentSupport
private void registerTorrentSupport(TOTorrent torrent)
-
torrentChanged
public void torrentChanged(TOTorrent torrent, int change_type)
- Specified by:
torrentChanged
in interfaceTOTorrentListener
-
registerTracker
public void registerTracker(TOTorrent torrent, java.net.URL url)
- Specified by:
registerTracker
in interfaceAllTrackersManager.AllTrackers
-
registerTrackers
public void registerTrackers(TOTorrent torrent, java.util.List<java.util.List<java.net.URL>> trackers)
- Specified by:
registerTrackers
in interfaceAllTrackersManager.AllTrackers
-
getOptionsMutationCount
public long getOptionsMutationCount()
- Specified by:
getOptionsMutationCount
in interfaceAllTrackersManager.AllTrackers
-
ingestURL
public java.lang.String ingestURL(java.net.URL url)
- Specified by:
ingestURL
in interfaceAllTrackersManager.AllTrackers
-
register
private AllTrackersManagerImpl.AllTrackersTrackerImpl register(TOTorrent torrent_maybe_null, java.net.URL url)
-
register
private AllTrackersManagerImpl.AllTrackersTrackerImpl register(TOTorrent torrent_maybe_null, java.lang.String name)
-
unregister
private void unregister(java.lang.String name)
-
updateTracker
public void updateTracker(java.net.URL url, TRTrackerAnnouncerResponse response)
- Specified by:
updateTracker
in interfaceAllTrackersManager.AllTrackers
-
updateTracker
public void updateTracker(java.lang.String key, TRTrackerAnnouncerRequest request)
- Specified by:
updateTracker
in interfaceAllTrackersManager.AllTrackers
-
updateTracker
public void updateTracker(java.net.URL url, TRTrackerScraperResponse response)
- Specified by:
updateTracker
in interfaceAllTrackersManager.AllTrackers
-
queueCommand
void queueCommand(AllTrackersManagerImpl.AllTrackersTrackerImpl tracker, java.lang.String cmd)
-
getTracker
public AllTrackersManager.AllTrackersTracker getTracker(java.lang.String name)
- Specified by:
getTracker
in interfaceAllTrackersManager.AllTrackers
-
getTracker
public AllTrackersManager.AllTrackersTracker getTracker(java.net.URL url)
- Specified by:
getTracker
in interfaceAllTrackersManager.AllTrackers
-
getLoggingEnabled
public boolean getLoggingEnabled(java.lang.String short_key)
- Specified by:
getLoggingEnabled
in interfaceAllTrackersManager.AllTrackers
-
setLoggingEnabled
public void setLoggingEnabled(java.lang.String short_key, boolean enabled)
- Specified by:
setLoggingEnabled
in interfaceAllTrackersManager.AllTrackers
-
getLogger
private LoggerChannel getLogger(java.lang.String short_key)
-
getLogFile
public java.io.File getLogFile(java.lang.String short_key)
- Specified by:
getLogFile
in interfaceAllTrackersManager.AllTrackers
-
addListener
public void addListener(AllTrackersManager.AllTrackersListener listener, boolean fire_for_existing)
- Specified by:
addListener
in interfaceAllTrackersManager.AllTrackers
-
removeListener
public void removeListener(AllTrackersManager.AllTrackersListener listener)
- Specified by:
removeListener
in interfaceAllTrackersManager.AllTrackers
-
-