Class RPDownloadManager
java.lang.Object
com.biglybt.pifimpl.remote.RPObject
com.biglybt.pifimpl.remote.download.RPDownloadManager
- All Implemented Interfaces:
DownloadManager
,Serializable
- See Also:
-
Field Summary
FieldsFields inherited from class com.biglybt.pifimpl.remote.RPObject
__delegate, _dispatcher, _object_id, next_key, object_registry, object_registry_reverse
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
_setDelegate
(Object _delegate) addDownload
(Torrent torrent) Add a torrent from a "Torrent" object.addDownload
(Torrent torrent, File torrent_location, File data_location) Add a torrent from a "Torrent" object and point it at the data location.void
addDownload
(File torrent_file) Add a torrent from a file.void
addDownload
(URL url) add a torrent from a URL.void
addDownload
(URL url, boolean auto_download) Add a torrent from a URL with explicit auto-download optionvoid
addDownload
(URL url, URL referer) add a torrent from a URL.void
addDownload
(URL url, Map request_properties) add a torrent from a URL and use the supplied request propertiesaddDownloadStopped
(Torrent torrent, File torrent_location, File data_location) Explicit way of adding a download in a stopped statevoid
addDownloadStubListener
(DownloadStubListener l, boolean inform_of_current) void
void
Add a listener that will be informed when a download is added to and removed from the client.void
addListener
(DownloadManagerListener l, boolean notify) Add a listener that will be informed when a download is added to and removed from the client.addNonPersistentDownload
(Torrent torrent, File torrent_location, File data_location) Add a non-persistent download.addNonPersistentDownloadStopped
(Torrent torrent, File torrentLocation, File dataLocation) boolean
boolean
void
clearNonPersistentDownloadState
(byte[] hash) Although non-persistent downloads themselves aren't rememebered across restarts, some internal stats are (for continuity, like total up/down, file allocation state) - this method allows this to be removedstatic RPDownloadManager
create
(DownloadManager _delegate) Returns the defaultSaveLocationManager
object that controls where downloads should be placed.getDownload
(byte[] hash, boolean check_truncated) getDownload
(Torrent torrent) Gets the download for a particular torrent, returns null if not foundDownload[]
Gets all the downloads.Download[]
getDownloads
(boolean bSort) Gets all the downloads.int
Return aDownloadEventNotifier
object which can be used as an easy way to register listeners against all downloads handled by the client.Returns the currentSaveLocationManager
object which decides where downloads should be placed.getStats()
Get the download manager statisticsboolean
indicates whether or not all active downloads are in a seeding (or effective) seeding statelookupDownloadStub
(byte[] hash) void
pause all running downloadsvoid
void
void
Removes a previously added listener.void
removeListener
(DownloadManagerListener l, boolean notify) Removes a previously added listener.void
resume previously paused downloadsvoid
Registers an object to be in control of determining the default save location for downloads.void
starts all non-running downloadsvoid
stops all running downloadsMethods inherited from class com.biglybt.pifimpl.remote.RPObject
_fixupLocal, _getDelegate, _getName, _getOID, _lookupLocal, _lookupLocal, _refresh, _setRemote, getDispatcher, notSupported, notSupported
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.biglybt.pif.download.DownloadManager
getDownload
-
Field Details
-
delegate
-
-
Constructor Details
-
RPDownloadManager
-
-
Method Details
-
create
-
_setDelegate
- Overrides:
_setDelegate
in classRPObject
-
_setLocal
- Overrides:
_setLocal
in classRPObject
- Throws:
RPException
-
_process
-
addDownload
Description copied from interface:DownloadManager
Add a torrent from a file. This may prompt the user for a download location etc. if required. This is an async operation, so no Download is returned. If you want to force a download to be added without prompting the user, you should create a Torrent object first, and then use an alternative addDownload method.- Specified by:
addDownload
in interfaceDownloadManager
- Parameters:
torrent_file
-- Throws:
DownloadException
- See Also:
-
addDownload
Description copied from interface:DownloadManager
add a torrent from a URL. This will prompt the user for download location etc. if required This is an async operation so no Download returned- Specified by:
addDownload
in interfaceDownloadManager
- Parameters:
url
-referer
-
-
addDownload
Description copied from interface:DownloadManager
add a torrent from a URL. This will prompt the user for download location etc. if required This is an async operation so no Download returned- Specified by:
addDownload
in interfaceDownloadManager
- Parameters:
url
-- Throws:
DownloadException
-
addDownload
Description copied from interface:DownloadManager
Add a torrent from a URL with explicit auto-download option- Specified by:
addDownload
in interfaceDownloadManager
- Parameters:
url
-auto_download
-- Throws:
DownloadException
-
addDownload
Description copied from interface:DownloadManager
add a torrent from a URL and use the supplied request properties- Specified by:
addDownload
in interfaceDownloadManager
- Parameters:
url
-request_properties
-
-
addDownload
Description copied from interface:DownloadManager
Add a torrent from a "Torrent" object. The default torrent file and data locations will be used if defined - a DownloadException will be thrown if they're not. You can explicitly set these values by using theaddDownload(Torrent, File, File)
method.- Specified by:
addDownload
in interfaceDownloadManager
- Parameters:
torrent
-- Returns:
- Throws:
DownloadException
- See Also:
-
addDownload
public Download addDownload(Torrent torrent, File torrent_location, File data_location) throws DownloadException Description copied from interface:DownloadManager
Add a torrent from a "Torrent" object and point it at the data location. The torrent_location should be the location of where the torrent file is on disk. This will be the torrent file that the client will use internally. If null is passed, then a file to store the torrent data in will be automatically created by the client.- Specified by:
addDownload
in interfaceDownloadManager
- Parameters:
torrent
- The torrent object to create a download with.torrent_location
- The location of the file on disk - ifnull
, a file to store the torrent data into will be created automatically.data_location
- null -> user default data save location if defined- Returns:
- support for null params for torrent_location/data_location since 2.1.0.4
- Throws:
DownloadException
-
addDownloadStopped
public Download addDownloadStopped(Torrent torrent, File torrent_location, File data_location) throws DownloadException Description copied from interface:DownloadManager
Explicit way of adding a download in a stopped state- Specified by:
addDownloadStopped
in interfaceDownloadManager
- Parameters:
torrent
-torrent_location
-data_location
-- Returns:
- Throws:
DownloadException
-
addNonPersistentDownload
public Download addNonPersistentDownload(Torrent torrent, File torrent_location, File data_location) throws DownloadException Description copied from interface:DownloadManager
Add a non-persistent download. Such downloads are not persisted by the client and as such will not be remembered across an client close and restart.- Specified by:
addNonPersistentDownload
in interfaceDownloadManager
- Parameters:
torrent
-torrent_location
-data_location
-- Returns:
- Throws:
DownloadException
-
addNonPersistentDownloadStopped
public Download addNonPersistentDownloadStopped(Torrent torrent, File torrentLocation, File dataLocation) throws DownloadException - Specified by:
addNonPersistentDownloadStopped
in interfaceDownloadManager
- Throws:
DownloadException
-
clearNonPersistentDownloadState
public void clearNonPersistentDownloadState(byte[] hash) Description copied from interface:DownloadManager
Although non-persistent downloads themselves aren't rememebered across restarts, some internal stats are (for continuity, like total up/down, file allocation state) - this method allows this to be removed- Specified by:
clearNonPersistentDownloadState
in interfaceDownloadManager
- Parameters:
hash
-
-
getDownload
Description copied from interface:DownloadManager
Gets the download for a particular torrent, returns null if not found- Specified by:
getDownload
in interfaceDownloadManager
- Parameters:
torrent
-- Returns:
-
getDownload
- Specified by:
getDownload
in interfaceDownloadManager
-
getDownloads
Description copied from interface:DownloadManager
Gets all the downloads. Returned in Download "index" order- Specified by:
getDownloads
in interfaceDownloadManager
- Returns:
-
getDownloads
Description copied from interface:DownloadManager
Gets all the downloads.- Specified by:
getDownloads
in interfaceDownloadManager
- Parameters:
bSort
- true - Returned in Download "index" order.
false - Order not guaranteed. Faster retrieval.- Returns:
- array of Download object
-
pauseDownloads
public void pauseDownloads()Description copied from interface:DownloadManager
pause all running downloads- Specified by:
pauseDownloads
in interfaceDownloadManager
-
canPauseDownloads
public boolean canPauseDownloads()- Specified by:
canPauseDownloads
in interfaceDownloadManager
-
resumeDownloads
public void resumeDownloads()Description copied from interface:DownloadManager
resume previously paused downloads- Specified by:
resumeDownloads
in interfaceDownloadManager
-
canResumeDownloads
public boolean canResumeDownloads()- Specified by:
canResumeDownloads
in interfaceDownloadManager
-
startAllDownloads
public void startAllDownloads()Description copied from interface:DownloadManager
starts all non-running downloads- Specified by:
startAllDownloads
in interfaceDownloadManager
-
stopAllDownloads
public void stopAllDownloads()Description copied from interface:DownloadManager
stops all running downloads- Specified by:
stopAllDownloads
in interfaceDownloadManager
-
getStats
Description copied from interface:DownloadManager
Get the download manager statistics- Specified by:
getStats
in interfaceDownloadManager
- Returns:
-
isSeedingOnly
public boolean isSeedingOnly()Description copied from interface:DownloadManager
indicates whether or not all active downloads are in a seeding (or effective) seeding state- Specified by:
isSeedingOnly
in interfaceDownloadManager
- Returns:
-
addListener
Description copied from interface:DownloadManager
Add a listener that will be informed when a download is added to and removed from the client. Invoking this method is equivalent toaddListener(l, true)
.- Specified by:
addListener
in interfaceDownloadManager
- Parameters:
l
- The listener to add.- See Also:
-
addListener
Description copied from interface:DownloadManager
Add a listener that will be informed when a download is added to and removed from the client.- Specified by:
addListener
in interfaceDownloadManager
- Parameters:
l
- The listener to add.notify
- true - if you want the listener to have itsdownloadAdded
method invoked immediately with all downloads currently managed by the client. false - if you only want to be notified about new downloads added after this method is called.
-
removeListener
Description copied from interface:DownloadManager
Removes a previously added listener. Invoking this method is equivalent toremoveListener(l, false)
.- Specified by:
removeListener
in interfaceDownloadManager
- Parameters:
l
- The listener to remove.- See Also:
-
removeListener
Description copied from interface:DownloadManager
Removes a previously added listener.- Specified by:
removeListener
in interfaceDownloadManager
- Parameters:
l
- The listener to remove.notify
- true - if you want the listener to have itsdownloadRemoved
method invoked immediately with all downloads currently managed by the client, false otherwise.
-
addDownloadWillBeAddedListener
- Specified by:
addDownloadWillBeAddedListener
in interfaceDownloadManager
-
removeDownloadWillBeAddedListener
- Specified by:
removeDownloadWillBeAddedListener
in interfaceDownloadManager
-
getGlobalDownloadEventNotifier
Description copied from interface:DownloadManager
Return aDownloadEventNotifier
object which can be used as an easy way to register listeners against all downloads handled by the client.- Specified by:
getGlobalDownloadEventNotifier
in interfaceDownloadManager
-
setSaveLocationManager
Description copied from interface:DownloadManager
Registers an object to be in control of determining the default save location for downloads. You can set it to null to remove any object which was previously set.By default, the client will use its default save location manager which handles on-completion and on-removal events.
- Specified by:
setSaveLocationManager
in interfaceDownloadManager
- Parameters:
manager
- The new manager object to use.
-
getSaveLocationManager
Description copied from interface:DownloadManager
Returns the currentSaveLocationManager
object which decides where downloads should be placed.- Specified by:
getSaveLocationManager
in interfaceDownloadManager
- Returns:
- The manager object currently in use.
-
getDefaultSaveLocationManager
Description copied from interface:DownloadManager
Returns the defaultSaveLocationManager
object that controls where downloads should be placed.- Specified by:
getDefaultSaveLocationManager
in interfaceDownloadManager
- Returns:
- The default save location manager object.
-
getDownloadStubs
- Specified by:
getDownloadStubs
in interfaceDownloadManager
-
getDownloadStubCount
public int getDownloadStubCount()- Specified by:
getDownloadStubCount
in interfaceDownloadManager
-
lookupDownloadStub
- Specified by:
lookupDownloadStub
in interfaceDownloadManager
-
addDownloadStubListener
- Specified by:
addDownloadStubListener
in interfaceDownloadManager
-
removeDownloadStubListener
- Specified by:
removeDownloadStubListener
in interfaceDownloadManager
-