Package com.biglybt.core.global.impl
Class GlobalManagerImpl
- java.lang.Object
-
- com.biglybt.core.download.impl.DownloadManagerAdapter
-
- com.biglybt.core.global.impl.GlobalManagerImpl
-
- All Implemented Interfaces:
CoreComponent
,DownloadManagerListener
,GlobalManager
,TaggableResolver
,AEDiagnosticsEvidenceGenerator
,DataSourceResolver.DataSourceImporter
public class GlobalManagerImpl extends DownloadManagerAdapter implements GlobalManager, AEDiagnosticsEvidenceGenerator
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
GlobalManagerImpl.Checker
private class
GlobalManagerImpl.DownloadStateTagger
-
Nested classes/interfaces inherited from interface com.biglybt.core.tag.TaggableResolver
TaggableResolver.LifecycleControlListener
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description GlobalManagerImpl(Core core, GlobalMangerProgressListener listener)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DownloadManager
addDownloadManager(DownloadManager download_manager, boolean notifyListeners)
DownloadManager
addDownloadManager(java.lang.String fileName, byte[] optionalHash, java.lang.String savePath, int initialState, boolean persistent)
Create and add a Download Manager to the global listDownloadManager
addDownloadManager(java.lang.String torrent_file_name, byte[] optionalHash, java.lang.String savePath, int initialState, boolean persistent, boolean for_seeding, DownloadManagerInitialisationAdapter _adapter)
Create and add a Download Manager to the global listDownloadManager
addDownloadManager(java.lang.String torrent_file_name, byte[] optionalHash, java.lang.String savePath, java.lang.String saveFile, int initialState, boolean persistent, boolean for_seeding, DownloadManagerInitialisationAdapter _adapter)
Create and add a Download Manager to the global listDownloadManager
addDownloadManager(java.lang.String fileName, java.lang.String savePath)
Create and add a Download Manager to the global listvoid
addDownloadManagerInitialisationAdapter(DownloadManagerInitialisationAdapter adapter)
Any adapters added will get a chance to see/set the initial state of downloads as they are addedvoid
addDownloadWillBeRemovedListener(GlobalManagerDownloadWillBeRemovedListener l)
Add a listener triggered when Download is about to be removedvoid
addEventListener(GlobalManagerEventListener listener)
void
addLifecycleControlListener(TaggableResolver.LifecycleControlListener l)
void
addListener(GlobalManagerListener listener)
Add a Global Manager listener and triggers itvoid
addListener(GlobalManagerListener listener, boolean trigger)
void
canDownloadManagerBeRemoved(DownloadManager manager, boolean remove_torrent, boolean remove_data)
Determines whether a DownloadManager can be removedboolean
canPauseDownload(DownloadManager manager)
boolean
canPauseDownloads()
Indicates whether or not there are any downloads that can be paused.boolean
canResumeDownloads()
Indicates whether or not there are any paused downloads to resume.protected void
checkForceStart(boolean known_to_exist)
protected void
checkSeedingOnlyState()
protected void
checkSeedingOnlyStateSupport()
void
clearNonPersistentDownloadState(byte[] hash)
protected void
computeNATStatus()
boolean
contains(DownloadManager manager)
int
downloadManagerCount(boolean bCompleted)
Retrieve the number of download managers the global manager is managing.static java.lang.Long[]
enlargeLongArray(java.lang.Long[] array, int expandTo)
java.util.Map
exportDownloadStateToMap(DownloadManager dm)
private java.util.Map
exportDownloadStateToMapSupport(DownloadManager dm, boolean internal_export, boolean interim)
void
fireGlobalManagerEvent(int type, DownloadManager param)
(package private) void
fixLongFileName(DownloadManager manager)
void
fixUpDownloadManagerPositions()
Verifies the positions of the DownloadManagers, filling in gaps and shifting duplicate IDs down if necessary.void
generate(IndentWriter writer)
java.lang.String
getDisplayName(Taggable taggable)
protected DownloadManagerInitialisationAdapter
getDMAdapter(DownloadManagerInitialisationAdapter adapter)
java.lang.Object
getDownloadHistoryManager()
DownloadManager
getDownloadManager(TOTorrent torrent)
Retrieve the DownloadManager associated with a TOTorrent objectDownloadManager
getDownloadManager(HashWrapper hw)
Retrieve the DownloadManager associated with a hashjava.util.List<DownloadManager>
getDownloadManagers()
Retrieve a list ofDownloadManager
s that GlobalManager is handlingMainlineDHTProvider
getMainlineDHTProvider()
java.lang.Object[]
getNATStatus()
See plugin ConnectionManager.NAT_ constants for return valuesint
getPauseDownloadPeriodRemaining()
seconds remaining, 0 if not activejava.util.List<Taggable>
getResolvedTaggables()
long
getResolverTaggableType()
GlobalManagerStats
getStats()
Retrieve the Global Manager Statistics classjava.lang.String
getSwarmMergingInfo(DownloadManager dm)
long
getTotalSwarmsPeerRate(boolean downloading, boolean seeding)
TRTrackerScraper
getTrackerScraper()
Retrieve the Tracker Scraper management classjava.lang.Object
importDataSource(java.util.Map map)
DownloadManager
importDownloadStateFromMap(java.util.Map map)
protected void
informDestroyed()
private void
informDestroyInitiated(GlobalMangerProgressListener progress)
boolean
isMoveableDown(DownloadManager manager)
Retrieve whether a DownloadManager can move down in the GlobalManager listboolean
isMoveableUp(DownloadManager manager)
Retrieve whether a DownloadManager can move up in the GlobalManager listboolean
isPaused(DownloadManager manager)
Retrieve whether a DownloadManager is in a paused stateboolean
isPotentiallySeedingOnly()
As for isSeedingOnly but includes queued seedsboolean
isSeedingOnly()
Determines whether we are only seeding, and not currently downloading anything.boolean
isStopping()
boolean
isSwarmMerging(DownloadManager dm)
DownloadManager
loadDownload(java.util.Map mDownload, int currentDownload, int nbDownloads, GlobalMangerProgressListener progress_listener, boolean debug)
(package private) void
loadDownloads()
static void
main(java.lang.String[] args)
void
moveDown(DownloadManager manager)
Move one DownloadManager down in the GlobalManager's listvoid
moveEnd(DownloadManager[] manager)
Move a list of DownloadManagers to the end of the GlobalManager listvoid
moveTo(DownloadManager manager, int newPosition)
Move a Downloadmanager to a new position.void
moveTop(DownloadManager[] manager)
Move a list of DownloadManagers to the top of the GlobalManager listvoid
moveUp(DownloadManager manager)
Move one DownloadManager up in the GlobalManager's listboolean
pauseDownload(DownloadManager manager, boolean only_if_active)
Pause one DownloadManagervoid
pauseDownloads()
Pauses (stops) all running downloads/seedings.protected void
pauseDownloads(boolean tag_only)
void
pauseDownloadsForPeriod(int seconds)
pause any non-paused downloads and auto-resume all downloads after n secondsvoid
removeDownloadManager(DownloadManager manager)
Removes a DownloadManager from the global list, providing it can be removed (see#canDownloadManagerBeRemoved(DownloadManager)
)void
removeDownloadManager(DownloadManager manager, boolean remove_torrent, boolean remove_data)
void
removeDownloadManagerInitialisationAdapter(DownloadManagerInitialisationAdapter adapter)
void
removeDownloadWillBeRemovedListener(GlobalManagerDownloadWillBeRemovedListener l)
Remove a listener triggered when Download is about to be removedvoid
removeEventListener(GlobalManagerEventListener listener)
void
removeLifecycleControlListener(TaggableResolver.LifecycleControlListener l)
void
removeListener(GlobalManagerListener listener)
Removes a Global Manager listenervoid
requestAttention(java.lang.String id)
Taggable
resolveTaggable(java.lang.String id)
void
resumeDownload(DownloadManager manager)
Resume a previously paused DownloadManagervoid
resumeDownloads()
Resumes (starts) all downloads paused by the previous pauseDownloads call.boolean
resumeDownloads(boolean is_auto_resume)
Attempt to automatically resume downloads - request may be denied if manual override in effectboolean
resumingDownload(DownloadManager manager)
This reports that a download is being resumed in order to remove it from the paused set Don't use this to actually resume a download, use resumeDownload !protected void
saveDownloads(boolean interim, GlobalMangerProgressListener listener_maybe_null)
void
saveState()
protected void
seedPieceRecheck()
protected boolean
seedPieceRecheck(DownloadManager manager)
void
setMainlineDHTProvider(MainlineDHTProvider provider)
Calling this method doesn't prepare the client to be DHT-ready, it is only used to store, or remove, a DHT provider - so that it can be globally accessible.protected void
setSeedingOnlyState(boolean seeding, boolean potentially_seeding)
private java.util.List<DownloadManager>
sortForStop()
void
startAllDownloads()
Starts all downloadsvoid
stateChanged(DownloadManager manager, int new_state)
void
statsRequest(java.util.Map request, java.util.Map reply)
void
stopAllDownloads()
Stops all downloads without removing themprotected void
stopAllDownloads(boolean for_close, GlobalMangerProgressListener listener)
void
stopGlobalManager(GlobalMangerProgressListener listener)
Puts GlobalManager in a stopped state.
Used when closing down the client.boolean
stopPausedDownload(DownloadManager dm)
Don't use me, use dm.stopPausedDownload()private void
triggerAddListener(java.util.List downloadsToAdd)
-
Methods inherited from class com.biglybt.core.download.impl.DownloadManagerAdapter
completionChanged, downloadComplete, filePriorityChanged, positionChanged
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.biglybt.core.download.DownloadManagerListener
fileLocationChanged
-
-
-
-
Field Detail
-
LOGID
static final LogIDs LOGID
-
LDT_MANAGER_ADDED
private static final int LDT_MANAGER_ADDED
- See Also:
- Constant Field Values
-
LDT_MANAGER_REMOVED
private static final int LDT_MANAGER_REMOVED
- See Also:
- Constant Field Values
-
LDT_DESTROY_INITIATED
private static final int LDT_DESTROY_INITIATED
- See Also:
- Constant Field Values
-
LDT_DESTROYED
private static final int LDT_DESTROYED
- See Also:
- Constant Field Values
-
LDT_SEEDING_ONLY
private static final int LDT_SEEDING_ONLY
- See Also:
- Constant Field Values
-
LDT_EVENT
private static final int LDT_EVENT
- See Also:
- Constant Field Values
-
listeners_and_event_listeners
private final ListenerManager<java.lang.Object> listeners_and_event_listeners
-
LDT_MANAGER_WBR
private static final int LDT_MANAGER_WBR
- See Also:
- Constant Field Values
-
removal_listeners
private final ListenerManager<GlobalManagerDownloadWillBeRemovedListener> removal_listeners
-
enable_stopped_scrapes
static boolean enable_stopped_scrapes
-
disable_never_started_scrapes
static boolean disable_never_started_scrapes
-
no_space_dl_restart_check_period_millis
static int no_space_dl_restart_check_period_millis
-
missing_file_dl_restart_check_period_millis
static int missing_file_dl_restart_check_period_millis
-
missing_file_dl_restart_key
static java.lang.Object missing_file_dl_restart_key
-
managers_lock
private java.lang.Object managers_lock
-
managers_list_cow
private volatile DownloadManager[] managers_list_cow
-
manager_hash_map
final java.util.Map<HashWrapper,DownloadManager> manager_hash_map
-
manager_id_set
final java.util.Map<DownloadManager,DownloadManager> manager_id_set
-
progress_listener
private final GlobalMangerProgressListener progress_listener
-
lastListenerUpdate
private long lastListenerUpdate
-
checker
private final GlobalManagerImpl.Checker checker
-
stats
private final GlobalManagerStatsImpl stats
-
last_swarm_stats_calc_time
private long last_swarm_stats_calc_time
-
last_swarm_stats
private long last_swarm_stats
-
cripple_downloads_config
private final boolean cripple_downloads_config
-
trackerScraper
private final TRTrackerScraper trackerScraper
-
stats_writer
private GlobalManagerStatsWriter stats_writer
-
host_support
private GlobalManagerHostSupport host_support
-
download_history_manager
private java.lang.Object download_history_manager
-
saved_download_manager_state
private final java.util.Map<HashWrapper,java.util.Map> saved_download_manager_state
-
paused_list_initial
private final java.util.Map<HashWrapper,java.lang.Boolean> paused_list_initial
-
lcl_map
private java.util.Map<TaggableResolver.LifecycleControlListener,GlobalManagerDownloadWillBeRemovedListener> lcl_map
-
next_seed_piece_recheck_index
private int next_seed_piece_recheck_index
-
torrent_folder_watcher
private final TorrentFolderWatcher torrent_folder_watcher
-
paused_list
private final java.util.Map<HashWrapper,java.lang.Boolean> paused_list
-
paused_list_mon
private final AEMonitor paused_list_mon
-
file_merger
private final GlobalManagerFileMerger file_merger
-
isStopping
private volatile boolean isStopping
-
destroyed
private volatile boolean destroyed
-
needsSavingCozStateChanged
volatile long needsSavingCozStateChanged
-
seeding_only_mode
private boolean seeding_only_mode
-
potentially_seeding_only_mode
private boolean potentially_seeding_only_mode
-
all_trackers
private final AllTrackersManager.AllTrackers all_trackers
-
all_trackers_options_mut
private long all_trackers_options_mut
-
check_seeding_only_state_dispatcher
private final FrequencyLimitedDispatcher check_seeding_only_state_dispatcher
-
force_start_non_seed_exists
private boolean force_start_non_seed_exists
-
nat_status
private int nat_status
-
nat_info_prefix
private java.lang.String nat_info_prefix
-
nat_info
private java.lang.String nat_info
-
nat_status_last_good
private long nat_status_last_good
-
nat_status_probably_ok
private boolean nat_status_probably_ok
-
dm_adapters
private final CopyOnWriteList<DownloadManagerInitialisationAdapter> dm_adapters
-
loadTorrentsDelay
DelayedEvent loadTorrentsDelay
delay loading of torrents
-
loadingComplete
boolean loadingComplete
Whether loading of existing torrents is done
-
loadingSem
final AESemaphore loadingSem
Monitor to block adding torrents while loading existing torrent list
-
addingDM_monitor
final AEMonitor addingDM_monitor
-
addingDMs
final java.util.List addingDMs
List of torrents being added, but not added to the GM list yet
-
provider
private MainlineDHTProvider provider
-
auto_resume_on_start
private boolean auto_resume_on_start
-
auto_resume_timer
private TimerEvent auto_resume_timer
-
auto_resume_disabled
private boolean auto_resume_disabled
-
taggable_life_manager
private final TaggableLifecycleHandler taggable_life_manager
-
ds_tagger
private GlobalManagerImpl.DownloadStateTagger ds_tagger
-
-
Constructor Detail
-
GlobalManagerImpl
public GlobalManagerImpl(Core core, GlobalMangerProgressListener listener)
-
-
Method Detail
-
addDownloadManager
public DownloadManager addDownloadManager(java.lang.String fileName, java.lang.String savePath)
Description copied from interface:GlobalManager
Create and add a Download Manager to the global list- Specified by:
addDownloadManager
in interfaceGlobalManager
- Parameters:
fileName
- location and name of torrent filesavePath
- path to write the data to- Returns:
- The Downloadmanger based on the supplied information.
May return an existing DownloadManager if torrent was already in GlobalManager.
-
addDownloadManager
public DownloadManager addDownloadManager(java.lang.String fileName, byte[] optionalHash, java.lang.String savePath, int initialState, boolean persistent)
Description copied from interface:GlobalManager
Create and add a Download Manager to the global list- Specified by:
addDownloadManager
in interfaceGlobalManager
- Parameters:
fileName
- location and name of torrent filesavePath
- path to write the data toinitialState
- Initial state of download. See DownloadManager.STATE_*persistent
- Whether the download should be treated as persistent download- Returns:
- The Downloadmanger based on the supplied information.
May return an existing DownloadManager if torrent was already in GlobalManager.
-
addDownloadManager
public DownloadManager addDownloadManager(java.lang.String torrent_file_name, byte[] optionalHash, java.lang.String savePath, int initialState, boolean persistent, boolean for_seeding, DownloadManagerInitialisationAdapter _adapter)
Description copied from interface:GlobalManager
Create and add a Download Manager to the global list- Specified by:
addDownloadManager
in interfaceGlobalManager
- Parameters:
torrent_file_name
- location and name of torrent filesavePath
- path to write the data toinitialState
- Initial state of download. See DownloadManager.STATE_*persistent
- Whether the download should be treated as persistent downloadfor_seeding
- Whether the manager should assume the torrent is already complete and ready for seeding.- Returns:
- The Downloadmanger based on the supplied information.
May return an existing DownloadManager if torrent was already in GlobalManager.
-
addDownloadManager
public DownloadManager addDownloadManager(java.lang.String torrent_file_name, byte[] optionalHash, java.lang.String savePath, java.lang.String saveFile, int initialState, boolean persistent, boolean for_seeding, DownloadManagerInitialisationAdapter _adapter)
Description copied from interface:GlobalManager
Create and add a Download Manager to the global list- Specified by:
addDownloadManager
in interfaceGlobalManager
- Parameters:
torrent_file_name
- location and name of torrent filesavePath
- path to write the data toinitialState
- Initial state of download. See DownloadManager.STATE_*persistent
- Whether the download should be treated as persistent downloadfor_seeding
- Whether the manager should assume the torrent is already complete and ready for seeding.- Returns:
- true, if the download was added
-
clearNonPersistentDownloadState
public void clearNonPersistentDownloadState(byte[] hash)
- Specified by:
clearNonPersistentDownloadState
in interfaceGlobalManager
-
addDownloadManager
protected DownloadManager addDownloadManager(DownloadManager download_manager, boolean notifyListeners)
-
getDownloadManagers
public java.util.List<DownloadManager> getDownloadManagers()
Description copied from interface:GlobalManager
Retrieve a list ofDownloadManager
s that GlobalManager is handling- Specified by:
getDownloadManagers
in interfaceGlobalManager
- Returns:
- a list of
DownloadManager
s
-
getDownloadManager
public DownloadManager getDownloadManager(TOTorrent torrent)
Description copied from interface:GlobalManager
Retrieve the DownloadManager associated with a TOTorrent object- Specified by:
getDownloadManager
in interfaceGlobalManager
- Parameters:
torrent
- Torrent to search for- Returns:
- The DownloadManager associted with the TOTOrrent, or null if none found
-
getDownloadManager
public DownloadManager getDownloadManager(HashWrapper hw)
Description copied from interface:GlobalManager
Retrieve the DownloadManager associated with a hash- Specified by:
getDownloadManager
in interfaceGlobalManager
- Parameters:
hw
- Hash to search for- Returns:
- The DownloadManager associted with the hash, or null if none found
-
canDownloadManagerBeRemoved
public void canDownloadManagerBeRemoved(DownloadManager manager, boolean remove_torrent, boolean remove_data) throws GlobalManagerDownloadRemovalVetoException
Description copied from interface:GlobalManager
Determines whether a DownloadManager can be removed- Specified by:
canDownloadManagerBeRemoved
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to check- Throws:
GlobalManagerDownloadRemovalVetoException
-
removeDownloadManager
public void removeDownloadManager(DownloadManager manager) throws GlobalManagerDownloadRemovalVetoException
Description copied from interface:GlobalManager
Removes a DownloadManager from the global list, providing it can be removed (see#canDownloadManagerBeRemoved(DownloadManager)
)The DownloadManager will not be stopped if it is running. Scraping, however, will be turned off.
- Specified by:
removeDownloadManager
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to remove- Throws:
GlobalManagerDownloadRemovalVetoException
-
removeDownloadManager
public void removeDownloadManager(DownloadManager manager, boolean remove_torrent, boolean remove_data) throws GlobalManagerDownloadRemovalVetoException
- Specified by:
removeDownloadManager
in interfaceGlobalManager
- Throws:
GlobalManagerDownloadRemovalVetoException
-
isStopping
public boolean isStopping()
- Specified by:
isStopping
in interfaceGlobalManager
-
stopGlobalManager
public void stopGlobalManager(GlobalMangerProgressListener listener)
Description copied from interface:GlobalManager
Puts GlobalManager in a stopped state.
Used when closing down the client.- Specified by:
stopGlobalManager
in interfaceGlobalManager
-
stopAllDownloads
public void stopAllDownloads()
Description copied from interface:GlobalManager
Stops all downloads without removing them- Specified by:
stopAllDownloads
in interfaceGlobalManager
-
stopAllDownloads
protected void stopAllDownloads(boolean for_close, GlobalMangerProgressListener listener)
-
startAllDownloads
public void startAllDownloads()
Starts all downloads- Specified by:
startAllDownloads
in interfaceGlobalManager
-
pauseDownload
public boolean pauseDownload(DownloadManager manager, boolean only_if_active)
Description copied from interface:GlobalManager
Pause one DownloadManager- Specified by:
pauseDownload
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to pause- Returns:
- False if DownloadManager was invalid, stopped, or pause failed
-
stopPausedDownload
public boolean stopPausedDownload(DownloadManager dm)
Description copied from interface:GlobalManager
Don't use me, use dm.stopPausedDownload()- Specified by:
stopPausedDownload
in interfaceGlobalManager
- Returns:
-
pauseDownloadsForPeriod
public void pauseDownloadsForPeriod(int seconds)
Description copied from interface:GlobalManager
pause any non-paused downloads and auto-resume all downloads after n seconds- Specified by:
pauseDownloadsForPeriod
in interfaceGlobalManager
-
getPauseDownloadPeriodRemaining
public int getPauseDownloadPeriodRemaining()
Description copied from interface:GlobalManager
seconds remaining, 0 if not active- Specified by:
getPauseDownloadPeriodRemaining
in interfaceGlobalManager
- Returns:
-
pauseDownloads
public void pauseDownloads()
Description copied from interface:GlobalManager
Pauses (stops) all running downloads/seedings.- Specified by:
pauseDownloads
in interfaceGlobalManager
-
pauseDownloads
protected void pauseDownloads(boolean tag_only)
-
canPauseDownload
public boolean canPauseDownload(DownloadManager manager)
-
isPaused
public boolean isPaused(DownloadManager manager)
Description copied from interface:GlobalManager
Retrieve whether a DownloadManager is in a paused state- Specified by:
isPaused
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to query- Returns:
- the pause state
-
canPauseDownloads
public boolean canPauseDownloads()
Description copied from interface:GlobalManager
Indicates whether or not there are any downloads that can be paused.- Specified by:
canPauseDownloads
in interfaceGlobalManager
- Returns:
- true if there is at least one download to pause, false if none
-
resumeDownload
public void resumeDownload(DownloadManager manager)
Description copied from interface:GlobalManager
Resume a previously paused DownloadManager- Specified by:
resumeDownload
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to resume
-
resumingDownload
public boolean resumingDownload(DownloadManager manager)
Description copied from interface:GlobalManager
This reports that a download is being resumed in order to remove it from the paused set Don't use this to actually resume a download, use resumeDownload !- Specified by:
resumingDownload
in interfaceGlobalManager
- Returns:
-
resumeDownloads
public void resumeDownloads()
Description copied from interface:GlobalManager
Resumes (starts) all downloads paused by the previous pauseDownloads call.- Specified by:
resumeDownloads
in interfaceGlobalManager
-
resumeDownloads
public boolean resumeDownloads(boolean is_auto_resume)
Description copied from interface:GlobalManager
Attempt to automatically resume downloads - request may be denied if manual override in effect- Specified by:
resumeDownloads
in interfaceGlobalManager
- Returns:
- whether operation was accepted
-
canResumeDownloads
public boolean canResumeDownloads()
Description copied from interface:GlobalManager
Indicates whether or not there are any paused downloads to resume.- Specified by:
canResumeDownloads
in interfaceGlobalManager
- Returns:
- true if there is at least one download to resume, false if none.
-
isSwarmMerging
public boolean isSwarmMerging(DownloadManager dm)
- Specified by:
isSwarmMerging
in interfaceGlobalManager
-
getSwarmMergingInfo
public java.lang.String getSwarmMergingInfo(DownloadManager dm)
- Specified by:
getSwarmMergingInfo
in interfaceGlobalManager
-
sortForStop
private java.util.List<DownloadManager> sortForStop()
-
loadDownloads
void loadDownloads()
-
triggerAddListener
private void triggerAddListener(java.util.List downloadsToAdd)
-
saveState
public void saveState()
- Specified by:
saveState
in interfaceGlobalManager
-
saveDownloads
protected void saveDownloads(boolean interim, GlobalMangerProgressListener listener_maybe_null)
-
loadDownload
public DownloadManager loadDownload(java.util.Map mDownload, int currentDownload, int nbDownloads, GlobalMangerProgressListener progress_listener, boolean debug)
-
enlargeLongArray
public static java.lang.Long[] enlargeLongArray(java.lang.Long[] array, int expandTo)
-
exportDownloadStateToMap
public java.util.Map exportDownloadStateToMap(DownloadManager dm)
- Specified by:
exportDownloadStateToMap
in interfaceGlobalManager
-
importDownloadStateFromMap
public DownloadManager importDownloadStateFromMap(java.util.Map map)
- Specified by:
importDownloadStateFromMap
in interfaceGlobalManager
-
exportDownloadStateToMapSupport
private java.util.Map exportDownloadStateToMapSupport(DownloadManager dm, boolean internal_export, boolean interim)
-
getTrackerScraper
public TRTrackerScraper getTrackerScraper()
Description copied from interface:GlobalManager
Retrieve the Tracker Scraper management class- Specified by:
getTrackerScraper
in interfaceGlobalManager
- Returns:
-
getStats
public GlobalManagerStats getStats()
Description copied from interface:GlobalManager
Retrieve the Global Manager Statistics class- Specified by:
getStats
in interfaceGlobalManager
- Returns:
- the Global Manager Statistics class
-
contains
public boolean contains(DownloadManager manager)
- Specified by:
contains
in interfaceGlobalManager
- Returns:
-
isMoveableUp
public boolean isMoveableUp(DownloadManager manager)
Description copied from interface:GlobalManager
Retrieve whether a DownloadManager can move up in the GlobalManager list- Specified by:
isMoveableUp
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to check- Returns:
- True - Can move up
-
downloadManagerCount
public int downloadManagerCount(boolean bCompleted)
Description copied from interface:GlobalManager
Retrieve the number of download managers the global manager is managing.- Specified by:
downloadManagerCount
in interfaceGlobalManager
- Parameters:
bCompleted
- True: Return count of completed downloads
False: Return count of incomplete downloads- Returns:
- count
-
isMoveableDown
public boolean isMoveableDown(DownloadManager manager)
Description copied from interface:GlobalManager
Retrieve whether a DownloadManager can move down in the GlobalManager list- Specified by:
isMoveableDown
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to check- Returns:
- True - Can move down
-
moveUp
public void moveUp(DownloadManager manager)
Description copied from interface:GlobalManager
Move one DownloadManager up in the GlobalManager's list- Specified by:
moveUp
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to move up
-
moveDown
public void moveDown(DownloadManager manager)
Description copied from interface:GlobalManager
Move one DownloadManager down in the GlobalManager's list- Specified by:
moveDown
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to move down
-
moveTop
public void moveTop(DownloadManager[] manager)
Description copied from interface:GlobalManager
Move a list of DownloadManagers to the top of the GlobalManager list- Specified by:
moveTop
in interfaceGlobalManager
- Parameters:
manager
- array list of DownloadManager objects to move
-
moveEnd
public void moveEnd(DownloadManager[] manager)
Description copied from interface:GlobalManager
Move a list of DownloadManagers to the end of the GlobalManager list- Specified by:
moveEnd
in interfaceGlobalManager
- Parameters:
manager
- array list of DownloadManager objects to move
-
moveTo
public void moveTo(DownloadManager manager, int newPosition)
Description copied from interface:GlobalManager
Move a Downloadmanager to a new position.- Specified by:
moveTo
in interfaceGlobalManager
- Parameters:
manager
- DownloadManager to movenewPosition
- position to place
-
fixUpDownloadManagerPositions
public void fixUpDownloadManagerPositions()
Description copied from interface:GlobalManager
Verifies the positions of the DownloadManagers, filling in gaps and shifting duplicate IDs down if necessary.This does not need to be called after MoveXXX, addDownloadManager, or removeDownloadManager functions.
- Specified by:
fixUpDownloadManagerPositions
in interfaceGlobalManager
-
getResolverTaggableType
public long getResolverTaggableType()
- Specified by:
getResolverTaggableType
in interfaceTaggableResolver
-
resolveTaggable
public Taggable resolveTaggable(java.lang.String id)
- Specified by:
resolveTaggable
in interfaceTaggableResolver
-
getResolvedTaggables
public java.util.List<Taggable> getResolvedTaggables()
- Specified by:
getResolvedTaggables
in interfaceTaggableResolver
-
importDataSource
public java.lang.Object importDataSource(java.util.Map map)
- Specified by:
importDataSource
in interfaceDataSourceResolver.DataSourceImporter
-
getDisplayName
public java.lang.String getDisplayName(Taggable taggable)
- Specified by:
getDisplayName
in interfaceTaggableResolver
-
requestAttention
public void requestAttention(java.lang.String id)
- Specified by:
requestAttention
in interfaceTaggableResolver
-
addLifecycleControlListener
public void addLifecycleControlListener(TaggableResolver.LifecycleControlListener l)
- Specified by:
addLifecycleControlListener
in interfaceTaggableResolver
-
removeLifecycleControlListener
public void removeLifecycleControlListener(TaggableResolver.LifecycleControlListener l)
- Specified by:
removeLifecycleControlListener
in interfaceTaggableResolver
-
informDestroyed
protected void informDestroyed()
-
informDestroyInitiated
private void informDestroyInitiated(GlobalMangerProgressListener progress)
-
addListener
public void addListener(GlobalManagerListener listener)
Description copied from interface:GlobalManager
Add a Global Manager listener and triggers it- Specified by:
addListener
in interfaceGlobalManager
- Parameters:
listener
- Listener to add
-
addListener
public void addListener(GlobalManagerListener listener, boolean trigger)
- Specified by:
addListener
in interfaceGlobalManager
-
removeListener
public void removeListener(GlobalManagerListener listener)
Description copied from interface:GlobalManager
Removes a Global Manager listener- Specified by:
removeListener
in interfaceGlobalManager
- Parameters:
listener
- Listener to remove
-
addEventListener
public void addEventListener(GlobalManagerEventListener listener)
- Specified by:
addEventListener
in interfaceGlobalManager
-
removeEventListener
public void removeEventListener(GlobalManagerEventListener listener)
- Specified by:
removeEventListener
in interfaceGlobalManager
-
fireGlobalManagerEvent
public void fireGlobalManagerEvent(int type, DownloadManager param)
- Specified by:
fireGlobalManagerEvent
in interfaceGlobalManager
-
addDownloadWillBeRemovedListener
public void addDownloadWillBeRemovedListener(GlobalManagerDownloadWillBeRemovedListener l)
Description copied from interface:GlobalManager
Add a listener triggered when Download is about to be removed- Specified by:
addDownloadWillBeRemovedListener
in interfaceGlobalManager
- Parameters:
l
- Listener to add
-
removeDownloadWillBeRemovedListener
public void removeDownloadWillBeRemovedListener(GlobalManagerDownloadWillBeRemovedListener l)
Description copied from interface:GlobalManager
Remove a listener triggered when Download is about to be removed- Specified by:
removeDownloadWillBeRemovedListener
in interfaceGlobalManager
- Parameters:
l
- Listener to remove
-
stateChanged
public void stateChanged(DownloadManager manager, int new_state)
- Specified by:
stateChanged
in interfaceDownloadManagerListener
- Overrides:
stateChanged
in classDownloadManagerAdapter
-
checkForceStart
protected void checkForceStart(boolean known_to_exist)
-
checkSeedingOnlyState
protected void checkSeedingOnlyState()
-
checkSeedingOnlyStateSupport
protected void checkSeedingOnlyStateSupport()
-
setSeedingOnlyState
protected void setSeedingOnlyState(boolean seeding, boolean potentially_seeding)
-
isSeedingOnly
public boolean isSeedingOnly()
Description copied from interface:GlobalManager
Determines whether we are only seeding, and not currently downloading anything.- Specified by:
isSeedingOnly
in interfaceGlobalManager
- Returns:
- Seeding Only State
-
isPotentiallySeedingOnly
public boolean isPotentiallySeedingOnly()
Description copied from interface:GlobalManager
As for isSeedingOnly but includes queued seeds- Specified by:
isPotentiallySeedingOnly
in interfaceGlobalManager
- Returns:
-
getTotalSwarmsPeerRate
public long getTotalSwarmsPeerRate(boolean downloading, boolean seeding)
-
computeNATStatus
protected void computeNATStatus()
-
getNATStatus
public java.lang.Object[] getNATStatus()
Description copied from interface:GlobalManager
See plugin ConnectionManager.NAT_ constants for return values- Specified by:
getNATStatus
in interfaceGlobalManager
- Returns:
- ConnectionManager.NAT_*
-
seedPieceRecheck
protected void seedPieceRecheck()
-
seedPieceRecheck
protected boolean seedPieceRecheck(DownloadManager manager)
-
getDMAdapter
protected DownloadManagerInitialisationAdapter getDMAdapter(DownloadManagerInitialisationAdapter adapter)
-
fixLongFileName
void fixLongFileName(DownloadManager manager)
-
addDownloadManagerInitialisationAdapter
public void addDownloadManagerInitialisationAdapter(DownloadManagerInitialisationAdapter adapter)
Description copied from interface:GlobalManager
Any adapters added will get a chance to see/set the initial state of downloads as they are added- Specified by:
addDownloadManagerInitialisationAdapter
in interfaceGlobalManager
-
removeDownloadManagerInitialisationAdapter
public void removeDownloadManagerInitialisationAdapter(DownloadManagerInitialisationAdapter adapter)
- Specified by:
removeDownloadManagerInitialisationAdapter
in interfaceGlobalManager
-
getDownloadHistoryManager
public java.lang.Object getDownloadHistoryManager()
- Specified by:
getDownloadHistoryManager
in interfaceGlobalManager
-
generate
public void generate(IndentWriter writer)
- Specified by:
generate
in interfaceAEDiagnosticsEvidenceGenerator
-
main
public static void main(java.lang.String[] args)
-
setMainlineDHTProvider
public void setMainlineDHTProvider(MainlineDHTProvider provider)
Description copied from interface:GlobalManager
Calling this method doesn't prepare the client to be DHT-ready, it is only used to store, or remove, a DHT provider - so that it can be globally accessible. See the DHT manager classes in the plugin API for a better way to register a provider.- Specified by:
setMainlineDHTProvider
in interfaceGlobalManager
-
getMainlineDHTProvider
public MainlineDHTProvider getMainlineDHTProvider()
- Specified by:
getMainlineDHTProvider
in interfaceGlobalManager
-
statsRequest
public void statsRequest(java.util.Map request, java.util.Map reply)
- Specified by:
statsRequest
in interfaceGlobalManager
-
-