Package com.biglybt.core.lws
Class LWSDownload
java.lang.Object
com.biglybt.core.logging.LogRelation
com.biglybt.core.lws.LWSDownload
- All Implemented Interfaces:
Download
,DownloadEventNotifier
,DownloadStub
,Taggable
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.biglybt.pif.download.Download
Download.SeedingRank
Nested classes/interfaces inherited from interface com.biglybt.pif.download.DownloadStub
DownloadStub.DownloadStubEx, DownloadStub.DownloadStubFile
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final DownloadAnnounceResultImpl
private final TRTrackerAnnouncer
private final LightWeightSeed
private final DownloadScrapeResult
private final Map
private final Map
Fields inherited from interface com.biglybt.pif.download.Download
FLAG_ALLOW_PERMITTED_PEER_SOURCE_CHANGES, FLAG_DISABLE_AUTO_FILE_MOVE, FLAG_DISABLE_IP_FILTER, FLAG_DISABLE_STOP_AFTER_ALLOC, FLAG_DO_NOT_DELETE_DATA_ON_REMOVE, FLAG_ERROR_REPORTED, FLAG_FORCE_DIRECT_DELETE, FLAG_INITIAL_NETWORKS_SET, FLAG_LIGHT_WEIGHT, FLAG_LOW_NOISE, FLAG_METADATA_DOWNLOAD, FLAG_MOVE_ON_COMPLETION_DONE, FLAG_ONLY_EVER_SEEDED, FLAG_SCAN_INCOMPLETE_PIECES, FLAG_SEQUENTIAL_DOWNLOAD, ST_DOWNLOADING, ST_ERROR, ST_NAMES, ST_PREPARING, ST_QUEUED, ST_READY, ST_SEEDING, ST_STOPPED, ST_STOPPING, ST_WAITING, UD_KEY_STOP_REASON
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
LWSDownload
(LightWeightSeed _lws, TRTrackerAnnouncer _announcer) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a listener that will be invoked when a request is made to activate a torrent.void
addAttributeListener
(DownloadAttributeListener l, TorrentAttribute attr, int event_type) Adds a listener that will be informed of when attributes on a download have been read / modified.void
Adds a listener that will be informed when a download moves into a completed state.void
Adds a listener that will be informed when a download is about to be removed.void
Adds a listener that will be informed of changes to a download's state.void
Adds a listener that will be informed of when peer managers have been added / removed for a download.void
addRateLimiter
(RateLimiter limiter, boolean is_upload) void
Adds a listener that will be informed when the latest announce/scrape results change.void
addTrackerListener
(DownloadTrackerListener l, boolean immediateTrigger) Adds a listener that will be informed when the latest announce/scrape results change.Returns aSaveLocationChange
object describing the appropriate location for the download (and torrent file) to exist in, based on the download's completion state, the for-completion rules in place, and theSaveLocationManager
object in use.boolean
Tests whether or not a download can be removed.boolean
Returns true if the client will allow the data files for the torrent to be moved.boolean
void
Apply the changes in the givenSaveLocationChange
object - this includes moving torrent and data file data.Gives access to the current activation state.getAggregatedScrapeResult
(boolean cache) getAttribute
(TorrentAttribute attribute) Gets an attribute of this download.boolean
Gets the value of the given attribute from the download.Returns the name of the Categorylong
returns the time this download was created in millisecondsReturn the disk manager, null if its not runningint
Return the number of DiskManagerFile objectsReturns info about the torrent's files.getDiskManagerFileInfo
(int i) Returns file info for the given index.byte[]
Get the local peerID advertised to the download swarm.int
Get the max download rate allowed for this download.When the download state is ERROR this method returns the error detailsboolean
getFlag
(long flag) Get the flag valuelong
getFlags()
get all the flags as a bitmapint
Gets the value of the given attribute from the download.Gives access to the last announce result received from the tracker for the downloadGives access to the last scrape result received from the tracker for the downloadString[]
getListAttribute
(TorrentAttribute attribute) long
Gets the value of the given attribute from the download.getLWS()
getMapAttribute
(TorrentAttribute attribute) int
Get the max download rate allowed for this downloadgetName()
Returns the name of the torrent.return the current peer manager for the download.int
Returns the current position in the queue Completed and Incompleted downloads have seperate position sets.Returns the "Primary" file in the download.Object[]
Query this class for a reference to another class that it may holdA short description of what your class holds that can be printed by the loggerThis returns the full save path for the download.The torrents with the highest rankings will be seeded first.int
getState()
get state from above ST_ setgetStats()
Gives access to the download's statisticsint
For the STOPPING state this method gives the state that is being transited too (STOPPED, QUEUED or ERROR)getTags()
Each download has a corresponding torrentReturns the full file path and name of the .torrent filebyte[]
long
int
Get the max upload rate allowed for this download.getUserData
(Object key) get user-defined key/valueboolean
hasAttribute
(TorrentAttribute name) Returnstrue
if the download has an explicit value stored for the given attribute.void
See lifecycle description aboveboolean
When a download is completed it is rechecked (if the option is enabled).boolean
Indicates if the download has completed or not, exluding any files marked as Do No Downloadboolean
isComplete
(boolean bIncludeDND) Indicates if the download has completed or notboolean
Retrieves whether the download is force startedboolean
Is advanced AZ messaging enabled for this download.boolean
isMoving()
Returns true if the download is currently in the process of having its datafiles movedboolean
isPaused()
boolean
Downloads can be persistent (be remembered across client sessions), or non-persistent.boolean
boolean
When a download is "start-stop locked" it means that seeding rules shouldn't start or stop the download as it is under manual controlboolean
isStub()
void
moveDataFiles
(File new_parent_dir) Move a download's data files to a new location.void
moveDataFiles
(File new_parent_dir, String new_name) Move a download's data files to a new location, and rename the download at the same time.void
moveDown()
Moves the download down one positionvoid
moveTo
(int position) Moves a download and re-orders the others appropriately.void
moveTorrentFile
(File new_parent_dir) Move a download's torrent file to a new location.void
moveUp()
Moves the download position up oneprotected void
void
pause()
Pause the downloadvoid
Performs a complete recheck of the downloaded data Download must be in stopped, queued or error state Action is performed asynchronously and will progress the download through states PREPARING back to the relevant statevoid
remove()
Removes a download.void
remove
(boolean delete_torrent, boolean delete_data) Same as "remove" but, if successful, deletes the torrent and/or datavoid
Removes a listener object added via theDownloadEventNotifier.addActivationListener(DownloadActivationListener)
method.void
removeAttributeListener
(DownloadAttributeListener l, TorrentAttribute attr, int event_type) void
Removes a listener object removed via theDownloadEventNotifier.addCompletionListener(DownloadCompletionListener)
method.void
Removes a listener object added via theDownloadEventNotifier.addDownloadWillBeRemovedListener(DownloadWillBeRemovedListener)
method.void
Removes a listener object added via theDownloadEventNotifier.addListener(DownloadListener)
method.void
Removes a listener object added via theDownloadEventNotifier.addPeerListener(DownloadPeerListener)
method.void
removeRateLimiter
(RateLimiter limiter, boolean is_upload) void
Removes a listener object added via theDownloadEventNotifier.addTrackerListener(DownloadTrackerListener)
orDownloadEventNotifier.addTrackerListener(DownloadTrackerListener, boolean)
method.void
renameDownload
(String name) Renames the file (for a single file torrent) or directory (for a multi file torrent) where the download is being saved to.void
request a tracker announcevoid
requestTrackerAnnounce
(boolean immediate) request a tracker announcevoid
requestTrackerScrape
(boolean immediate) request a tracker announcevoid
restart()
See lifecycle description abovevoid
resume()
Resume the download if pausedvoid
void
setAttribute
(TorrentAttribute attribute, String value) Sets an attribute of this download.void
setBooleanAttribute
(TorrentAttribute name, boolean value) Sets a boolean attribute on this download.void
setCategory
(String sName) Sets the category for the downloadvoid
setDownloadRateLimitBytesPerSecond
(int max_rate_bps) Set the max download rate allowed for this download.void
setFlag
(long flag, boolean value) Set the flag value.void
setForceStart
(boolean forceStart) Set the forcestart state of the downloadvoid
setIntAttribute
(TorrentAttribute name, int value) Sets an integer attribute on this download.void
setListAttribute
(TorrentAttribute attribute, String[] value) void
setLongAttribute
(TorrentAttribute name, long value) Sets a long attribute on this download.void
setMapAttribute
(TorrentAttribute attribute, Map value) void
setMaximumDownloadKBPerSecond
(int kb) Sets the maximum download speed in bytes per second.void
setMessagingEnabled
(boolean enabled) Enable or disable advanced AZ messaging for this download.void
setPosition
(int newPosition) Sets the position in the queue Completed and Incompleted downloads have seperate position setsvoid
setScrapeResult
(DownloadScrapeResult result) void
The torrents with the highest rankings will be seeded first.void
setStopReason
(String reason) void
setUploadRateLimitBytesPerSecond
(int max_rate_bps) Set the max upload rate allowed for this download.void
setUserData
(Object key, Object data) set user defined value.void
start()
See lifecycle description abovevoid
startDownload
(boolean force) Simple method to start the download.void
stop()
See lifecycle description abovevoid
See lifecycle description abovevoid
stopAndRemove
(boolean delete_torrent, boolean delete_data) void
Simple method to stop the download.stubbify()
Methods inherited from class com.biglybt.core.logging.LogRelation
propogatedRelationText, queryForClass
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.Download
getAggregatedScrapeResult
Methods inherited from interface com.biglybt.pif.download.DownloadStub
getMainTracker
-
Field Details
-
lws
-
announcer
-
announce_result
-
user_data
-
torrent_attributes
-
scrape_result
-
-
Constructor Details
-
LWSDownload
-
-
Method Details
-
getLWS
-
getState
public int getState()Description copied from interface:Download
get state from above ST_ set -
getSubState
public int getSubState()Description copied from interface:Download
For the STOPPING state this method gives the state that is being transited too (STOPPED, QUEUED or ERROR)- Specified by:
getSubState
in interfaceDownload
- Returns:
-
getErrorStateDetails
Description copied from interface:Download
When the download state is ERROR this method returns the error details- Specified by:
getErrorStateDetails
in interfaceDownload
- Returns:
-
setFlag
public void setFlag(long flag, boolean value) Description copied from interface:Download
Set the flag value. -
getFlag
public boolean getFlag(long flag) Description copied from interface:Download
Get the flag value -
getFlags
public long getFlags()Description copied from interface:Download
get all the flags as a bitmap -
calculateDefaultDownloadLocation
Description copied from interface:Download
Returns aSaveLocationChange
object describing the appropriate location for the download (and torrent file) to exist in, based on the download's completion state, the for-completion rules in place, and theSaveLocationManager
object in use.- Specified by:
calculateDefaultDownloadLocation
in interfaceDownload
-
getTorrent
Description copied from interface:Download
Each download has a corresponding torrent- Specified by:
getTorrent
in interfaceDownload
- Specified by:
getTorrent
in interfaceDownloadStub
- Returns:
- the download's torrent
-
initialize
Description copied from interface:Download
See lifecycle description above- Specified by:
initialize
in interfaceDownload
- Throws:
DownloadException
-
start
Description copied from interface:Download
See lifecycle description above- Specified by:
start
in interfaceDownload
- Throws:
DownloadException
-
startDownload
public void startDownload(boolean force) Description copied from interface:Download
Simple method to start the download. Will not raise an error if it didn't work, or if the download is already running.- Specified by:
startDownload
in interfaceDownload
- Parameters:
force
- true to force the download to be started.
-
stopDownload
public void stopDownload()Description copied from interface:Download
Simple method to stop the download. Will not raise an error if it didn't work, or if the download is already stopped.- Specified by:
stopDownload
in interfaceDownload
-
stop
Description copied from interface:Download
See lifecycle description above- Specified by:
stop
in interfaceDownload
- Throws:
DownloadException
-
setStopReason
- Specified by:
setStopReason
in interfaceDownload
-
getStopReason
- Specified by:
getStopReason
in interfaceDownload
-
stopAndQueue
Description copied from interface:Download
See lifecycle description above- Specified by:
stopAndQueue
in interfaceDownload
- Throws:
DownloadException
-
restart
Description copied from interface:Download
See lifecycle description above- Specified by:
restart
in interfaceDownload
- Throws:
DownloadException
-
pause
public void pause()Description copied from interface:Download
Pause the download -
resume
public void resume()Description copied from interface:Download
Resume the download if paused -
recheckData
Description copied from interface:Download
Performs a complete recheck of the downloaded data Download must be in stopped, queued or error state Action is performed asynchronously and will progress the download through states PREPARING back to the relevant state- Specified by:
recheckData
in interfaceDownload
- Throws:
DownloadException
-
isStartStopLocked
public boolean isStartStopLocked()Description copied from interface:Download
When a download is "start-stop locked" it means that seeding rules shouldn't start or stop the download as it is under manual control- Specified by:
isStartStopLocked
in interfaceDownload
- Returns:
- True if download is locked and should not be started or stopped
-
isForceStart
public boolean isForceStart()Description copied from interface:Download
Retrieves whether the download is force started- Specified by:
isForceStart
in interfaceDownload
- Returns:
- True if download is force started. False if not.
-
setForceStart
public void setForceStart(boolean forceStart) Description copied from interface:Download
Set the forcestart state of the download- Specified by:
setForceStart
in interfaceDownload
- Parameters:
forceStart
- True - Download will start, despite any Start/Stop rules/limits
False - Turn forcestart state off. Download may or may not stop, depending on Start/Stop rules/limits
-
isPaused
public boolean isPaused() -
getName
Description copied from interface:Download
Returns the name of the torrent. Similar to Torrent.getName() and is useful if getTorrent() returns null and you still need the name.- Specified by:
getName
in interfaceDownload
- Specified by:
getName
in interfaceDownloadStub
- Returns:
- name of the torrent
-
getTorrentFileName
Description copied from interface:Download
Returns the full file path and name of the .torrent file- Specified by:
getTorrentFileName
in interfaceDownload
- Returns:
- File name of the torrent.
-
getAttribute
Description copied from interface:Download
Gets an attribute of this download. For category use the Category torrent attribute- Specified by:
getAttribute
in interfaceDownload
- Parameters:
attribute
-- Returns:
-
setAttribute
Description copied from interface:Download
Sets an attribute of this download. For category use the Category torrent attribute- Specified by:
setAttribute
in interfaceDownload
- Parameters:
attribute
- Previously created attributevalue
- Value to store. null to remove attribute
-
getListAttribute
- Specified by:
getListAttribute
in interfaceDownload
-
setListAttribute
- Specified by:
setListAttribute
in interfaceDownload
- Parameters:
attribute
-value
-
-
setMapAttribute
- Specified by:
setMapAttribute
in interfaceDownload
- Parameters:
attribute
-value
- must be bencodable - key is string, value is Map, List, Long or byte[]
-
getMapAttribute
- Specified by:
getMapAttribute
in interfaceDownload
-
setIntAttribute
Description copied from interface:Download
Sets an integer attribute on this download.- Specified by:
setIntAttribute
in interfaceDownload
-
getIntAttribute
Description copied from interface:Download
Gets the value of the given attribute from the download. If no value is set, then0
will be returned.- Specified by:
getIntAttribute
in interfaceDownload
-
setLongAttribute
Description copied from interface:Download
Sets a long attribute on this download.- Specified by:
setLongAttribute
in interfaceDownload
- Specified by:
setLongAttribute
in interfaceDownloadStub
-
getLongAttribute
Description copied from interface:Download
Gets the value of the given attribute from the download. If no value is set, then0
will be returned.- Specified by:
getLongAttribute
in interfaceDownload
- Specified by:
getLongAttribute
in interfaceDownloadStub
- Parameters:
name
-- Returns:
-
setBooleanAttribute
Description copied from interface:Download
Sets a boolean attribute on this download.- Specified by:
setBooleanAttribute
in interfaceDownload
-
getBooleanAttribute
Description copied from interface:Download
Gets the value of the given attribute from the download. If no value is set, thenfalse
will be returned.- Specified by:
getBooleanAttribute
in interfaceDownload
-
hasAttribute
Description copied from interface:Download
Returnstrue
if the download has an explicit value stored for the given attribute.- Specified by:
hasAttribute
in interfaceDownload
-
addAttributeListener
public void addAttributeListener(DownloadAttributeListener l, TorrentAttribute attr, int event_type) Description copied from interface:DownloadEventNotifier
Adds a listener that will be informed of when attributes on a download have been read / modified.- Specified by:
addAttributeListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to add.attr
- The torrent attribute to be notified about.event_type
- The type of event to be notified of, as defined onDownloadAttributeListener
.
-
removeAttributeListener
public void removeAttributeListener(DownloadAttributeListener l, TorrentAttribute attr, int event_type) Description copied from interface:DownloadEventNotifier
Removes a listener object added via theinvalid input: 'method. @param l The listener to remove. @param attr The torrent attribute which it registered with. @param event_type The type of event which it registered with. @since 3.0.3.5'
- Specified by:
removeAttributeListener
in interfaceDownloadEventNotifier
-
getCategoryName
Description copied from interface:Download
Returns the name of the Category- Specified by:
getCategoryName
in interfaceDownload
- Returns:
- name of the category
-
setCategory
Description copied from interface:Download
Sets the category for the download- Specified by:
setCategory
in interfaceDownload
- Parameters:
sName
- Category name
-
getTags
-
remove
Description copied from interface:Download
Removes a download. The download must be stopped or in error. Removal may fail if another component does not want the removal to occur - in this case a "veto" exception is thrown- Specified by:
remove
in interfaceDownload
- Specified by:
remove
in interfaceDownloadStub
- Throws:
DownloadException
DownloadRemovalVetoException
-
remove
public void remove(boolean delete_torrent, boolean delete_data) throws DownloadException, DownloadRemovalVetoException Description copied from interface:Download
Same as "remove" but, if successful, deletes the torrent and/or data- Specified by:
remove
in interfaceDownload
- Parameters:
delete_torrent
-delete_data
-- Throws:
DownloadException
DownloadRemovalVetoException
-
stopAndRemove
public void stopAndRemove(boolean delete_torrent, boolean delete_data) throws DownloadException, DownloadRemovalVetoException - Specified by:
stopAndRemove
in interfaceDownload
- Throws:
DownloadException
DownloadRemovalVetoException
-
isRemoved
public boolean isRemoved() -
getPosition
public int getPosition()Description copied from interface:Download
Returns the current position in the queue Completed and Incompleted downloads have seperate position sets. This means we can have a position x for Completed, and position x for Incompleted.- Specified by:
getPosition
in interfaceDownload
-
getCreationTime
public long getCreationTime()Description copied from interface:Download
returns the time this download was created in milliseconds- Specified by:
getCreationTime
in interfaceDownload
- Returns:
-
setPosition
public void setPosition(int newPosition) Description copied from interface:Download
Sets the position in the queue Completed and Incompleted downloads have seperate position sets- Specified by:
setPosition
in interfaceDownload
-
moveUp
public void moveUp()Description copied from interface:Download
Moves the download position up one -
moveDown
public void moveDown()Description copied from interface:Download
Moves the download down one position -
moveTo
public void moveTo(int position) Description copied from interface:Download
Moves a download and re-orders the others appropriately. Note that setPosition does not do this, it merely sets the position thus making it possible, for example, for two downloads to have the same position -
canBeRemoved
Description copied from interface:Download
Tests whether or not a download can be removed. Due to synchronization issues it is possible for a download to report OK here but still fail removal.- Specified by:
canBeRemoved
in interfaceDownload
- Returns:
- Throws:
DownloadRemovalVetoException
-
setAnnounceResult
- Specified by:
setAnnounceResult
in interfaceDownload
-
setScrapeResult
- Specified by:
setScrapeResult
in interfaceDownload
-
getLastAnnounceResult
Description copied from interface:Download
Gives access to the last announce result received from the tracker for the download- Specified by:
getLastAnnounceResult
in interfaceDownload
- Returns:
-
getLastScrapeResult
Description copied from interface:Download
Gives access to the last scrape result received from the tracker for the download- Specified by:
getLastScrapeResult
in interfaceDownload
- Returns:
- a non-null DownloadScrapeResult
-
getAggregatedScrapeResult
- Specified by:
getAggregatedScrapeResult
in interfaceDownload
-
getActivationState
Description copied from interface:Download
Gives access to the current activation state. Note that we currently only fire the activation listener on an increase in activation requirements. This method however gives the current view of the state and takes into account decreases too- Specified by:
getActivationState
in interfaceDownload
- Returns:
-
getStats
Description copied from interface:Download
Gives access to the download's statistics -
isPersistent
public boolean isPersistent()Description copied from interface:Download
Downloads can be persistent (be remembered across client sessions), or non-persistent.- Specified by:
isPersistent
in interfaceDownload
- Returns:
- true - persistent
false - non-persistent
-
setMaximumDownloadKBPerSecond
public void setMaximumDownloadKBPerSecond(int kb) Description copied from interface:Download
Sets the maximum download speed in bytes per second. 0 -> unlimited- Specified by:
setMaximumDownloadKBPerSecond
in interfaceDownload
- Parameters:
kb
-
-
getMaximumDownloadKBPerSecond
public int getMaximumDownloadKBPerSecond()Description copied from interface:Download
Get the max download rate allowed for this download- Specified by:
getMaximumDownloadKBPerSecond
in interfaceDownload
- Returns:
- upload rate in KB/s, 0 for unlimited
Since 4.8.1.3: -1 for download disabled
-
addRateLimiter
- Specified by:
addRateLimiter
in interfaceDownload
- Parameters:
limiter
- create via ConnectionManageris_upload
- false -> download limit
-
removeRateLimiter
- Specified by:
removeRateLimiter
in interfaceDownload
-
getUploadRateLimitBytesPerSecond
public int getUploadRateLimitBytesPerSecond()Description copied from interface:Download
Get the max upload rate allowed for this download.- Specified by:
getUploadRateLimitBytesPerSecond
in interfaceDownload
- Returns:
- upload rate in bytes per second, 0 for unlimited, -1 for upload disabled
-
setUploadRateLimitBytesPerSecond
public void setUploadRateLimitBytesPerSecond(int max_rate_bps) Description copied from interface:Download
Set the max upload rate allowed for this download.- Specified by:
setUploadRateLimitBytesPerSecond
in interfaceDownload
- Parameters:
max_rate_bps
- limit in bytes per second, 0 for unlimited, -1 for upload disabled
-
getDownloadRateLimitBytesPerSecond
public int getDownloadRateLimitBytesPerSecond()Description copied from interface:Download
Get the max download rate allowed for this download.- Specified by:
getDownloadRateLimitBytesPerSecond
in interfaceDownload
- Returns:
- upload rate in bytes per second, 0 for unlimited, -1 for download disabled
-
setDownloadRateLimitBytesPerSecond
public void setDownloadRateLimitBytesPerSecond(int max_rate_bps) Description copied from interface:Download
Set the max download rate allowed for this download.- Specified by:
setDownloadRateLimitBytesPerSecond
in interfaceDownload
- Parameters:
max_rate_bps
- limit in bytes per second, 0 for unlimited, -1 for dowmload disabled
-
isComplete
public boolean isComplete()Description copied from interface:Download
Indicates if the download has completed or not, exluding any files marked as Do No Download- Specified by:
isComplete
in interfaceDownload
- Returns:
- Download Complete status
-
isComplete
public boolean isComplete(boolean bIncludeDND) Description copied from interface:Download
Indicates if the download has completed or not- Specified by:
isComplete
in interfaceDownload
- Parameters:
bIncludeDND
- Whether to include DND files when determining completion state- Returns:
- Download Complete status
-
isChecking
public boolean isChecking()Description copied from interface:Download
When a download is completed it is rechecked (if the option is enabled). This method returns true during this phase (at which time the status will be seeding)- Specified by:
isChecking
in interfaceDownload
- Returns:
-
isMoving
public boolean isMoving()Description copied from interface:Download
Returns true if the download is currently in the process of having its datafiles moved -
getSavePath
Description copied from interface:Download
This returns the full save path for the download. If the download is a simple torrent, this will be the full path of the file being downloaded. If the download is a multiple file torrent, this will be the path to the directory containing all the files in the torrent.- Specified by:
getSavePath
in interfaceDownload
- Specified by:
getSavePath
in interfaceDownloadStub
- Returns:
- Full save path for this download.
-
moveDataFiles
Description copied from interface:Download
Move a download's data files to a new location. If a download is running, it will be automatically paused and resumed afterwards - be aware that this behaviour may generate stateChanged events being fired.- Specified by:
moveDataFiles
in interfaceDownload
- Parameters:
new_parent_dir
- New location. Note that non-simple torrents' data will be placed in a subdirectory of the torrent's name (Download.getName()
) under this new_parent_dir- Throws:
DownloadException
-
canMoveDataFiles
public boolean canMoveDataFiles()Description copied from interface:Download
Returns true if the client will allow the data files for the torrent to be moved.- Specified by:
canMoveDataFiles
in interfaceDownload
-
moveTorrentFile
Description copied from interface:Download
Move a download's torrent file to a new location. Download must be stopped and persistent- Specified by:
moveTorrentFile
in interfaceDownload
- Parameters:
new_parent_dir
-- Throws:
DownloadException
-
renameDownload
Description copied from interface:Download
Renames the file (for a single file torrent) or directory (for a multi file torrent) where the download is being saved to. The download must be in a state to move the data files to a new location (seeDownload.moveDataFiles(File)
).This will not rename the displayed name for the torrent - if you wish to do that, you must do it via the
TorrentAttribute
class.If a download is running, it will be automatically paused and resumed afterwards - be aware that this behaviour may generate stateChanged events being fired.
- Specified by:
renameDownload
in interfaceDownload
- Parameters:
name
- New name for the download.- Throws:
DownloadException
- See Also:
-
getPeerManager
Description copied from interface:Download
return the current peer manager for the download.- Specified by:
getPeerManager
in interfaceDownload
- Returns:
- null returned if torrent currently doesn't have one (e.g. it is stopped)
-
getDiskManager
Description copied from interface:Download
Return the disk manager, null if its not running- Specified by:
getDiskManager
in interfaceDownload
- Returns:
-
getDiskManagerFileInfo
Description copied from interface:Download
Returns info about the torrent's files. Note that this will return "stub" values if the download isn't running (not including info such as completion status)- Specified by:
getDiskManagerFileInfo
in interfaceDownload
- Returns:
-
getDiskManagerFileInfo
Description copied from interface:Download
Returns file info for the given index. Note that this will return "stub" values if the download isn't running (not including info such as completion status)- Specified by:
getDiskManagerFileInfo
in interfaceDownload
- Returns:
- null if index is invalid
-
getDiskManagerFileCount
public int getDiskManagerFileCount()Description copied from interface:Download
Return the number of DiskManagerFile objects- Specified by:
getDiskManagerFileCount
in interfaceDownload
- Returns:
-
requestTrackerAnnounce
public void requestTrackerAnnounce()Description copied from interface:Download
request a tracker announce- Specified by:
requestTrackerAnnounce
in interfaceDownload
-
requestTrackerAnnounce
public void requestTrackerAnnounce(boolean immediate) Description copied from interface:Download
request a tracker announce- Specified by:
requestTrackerAnnounce
in interfaceDownload
-
requestTrackerScrape
public void requestTrackerScrape(boolean immediate) Description copied from interface:Download
request a tracker announce- Specified by:
requestTrackerScrape
in interfaceDownload
-
addListener
Description copied from interface:DownloadEventNotifier
Adds a listener that will be informed of changes to a download's state.- Specified by:
addListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to add.
-
removeListener
Description copied from interface:DownloadEventNotifier
Removes a listener object added via theDownloadEventNotifier.addListener(DownloadListener)
method.- Specified by:
removeListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to remove.
-
addCompletionListener
Description copied from interface:DownloadEventNotifier
Adds a listener that will be informed when a download moves into a completed state.- Specified by:
addCompletionListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to add.
-
removeCompletionListener
Description copied from interface:DownloadEventNotifier
Removes a listener object removed via theDownloadEventNotifier.addCompletionListener(DownloadCompletionListener)
method.- Specified by:
removeCompletionListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to remove.
-
addTrackerListener
Description copied from interface:DownloadEventNotifier
Adds a listener that will be informed when the latest announce/scrape results change.Listener events will be immediately triggered after the listener has been added.
- Specified by:
addTrackerListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to add.
-
addTrackerListener
Description copied from interface:DownloadEventNotifier
Adds a listener that will be informed when the latest announce/scrape results change.- Specified by:
addTrackerListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to add.immediateTrigger
- Whether to immediately trigger listener's events.
-
removeTrackerListener
Description copied from interface:DownloadEventNotifier
Removes a listener object added via theDownloadEventNotifier.addTrackerListener(DownloadTrackerListener)
orDownloadEventNotifier.addTrackerListener(DownloadTrackerListener, boolean)
method.- Specified by:
removeTrackerListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to remove.
-
addDownloadWillBeRemovedListener
Description copied from interface:DownloadEventNotifier
Adds a listener that will be informed when a download is about to be removed. This gives the implementor the opportunity to veto the removal.- Specified by:
addDownloadWillBeRemovedListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to add.
-
removeDownloadWillBeRemovedListener
Description copied from interface:DownloadEventNotifier
Removes a listener object added via theDownloadEventNotifier.addDownloadWillBeRemovedListener(DownloadWillBeRemovedListener)
method.- Specified by:
removeDownloadWillBeRemovedListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to remove.
-
addActivationListener
Description copied from interface:DownloadEventNotifier
Adds a listener that will be invoked when a request is made to activate a torrent.- Specified by:
addActivationListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to add.
-
removeActivationListener
Description copied from interface:DownloadEventNotifier
Removes a listener object added via theDownloadEventNotifier.addActivationListener(DownloadActivationListener)
method.- Specified by:
removeActivationListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to remove.
-
addPeerListener
Description copied from interface:DownloadEventNotifier
Adds a listener that will be informed of when peer managers have been added / removed for a download.- Specified by:
addPeerListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to add.
-
removePeerListener
Description copied from interface:DownloadEventNotifier
Removes a listener object added via theDownloadEventNotifier.addPeerListener(DownloadPeerListener)
method.- Specified by:
removePeerListener
in interfaceDownloadEventNotifier
- Parameters:
l
- The listener to remove.
-
getSeedingRank
Description copied from interface:Download
The torrents with the highest rankings will be seeded first.- Specified by:
getSeedingRank
in interfaceDownload
- Returns:
- Seeding Rank
-
setSeedingRank
Description copied from interface:Download
The torrents with the highest rankings will be seeded first.- Specified by:
setSeedingRank
in interfaceDownload
- Parameters:
rank
- New Ranking
-
getDownloadPeerId
public byte[] getDownloadPeerId()Description copied from interface:Download
Get the local peerID advertised to the download swarm.- Specified by:
getDownloadPeerId
in interfaceDownload
- Returns:
- self peer id
-
isMessagingEnabled
public boolean isMessagingEnabled()Description copied from interface:Download
Is advanced AZ messaging enabled for this download.- Specified by:
isMessagingEnabled
in interfaceDownload
- Returns:
- true if enabled, false if disabled
-
setMessagingEnabled
public void setMessagingEnabled(boolean enabled) Description copied from interface:Download
Enable or disable advanced AZ messaging for this download.- Specified by:
setMessagingEnabled
in interfaceDownload
- Parameters:
enabled
- true to enabled, false to disabled
-
moveDataFiles
Description copied from interface:Download
Move a download's data files to a new location, and rename the download at the same time. Download must be stopped and persistent. This is equivalent to calling moveDataFiles[File] and then renameDownload[String]. For convenience, either argument can be null, but not both.If a download is running, it will be automatically paused and resumed afterwards - be aware that this behaviour may generate stateChanged events being fired.
- Specified by:
moveDataFiles
in interfaceDownload
- Parameters:
new_parent_dir
- new location to move torrent data files to. If null, and simple torrent, torrent data file will be renamed new_name. If null, and not simple torrent, torrent end path will be changed to new_name.new_name
- For simple torrent, changes the filename of the downloaded file. For non-simple torrent, changes the end path for the downloaded files. If null, torrent data files will be moved to new_parent_dir, with a subfolder ofDownload.getName()
.- Throws:
DownloadException
-
getUserData
Description copied from interface:Download
get user-defined key/value- Specified by:
getUserData
in interfaceDownload
- Parameters:
key
-- Returns:
-
setUserData
Description copied from interface:Download
set user defined value. this is TRANSIENT and not persisted over the client stop/start- Specified by:
setUserData
in interfaceDownload
- Parameters:
key
-data
-
-
changeLocation
Description copied from interface:Download
Apply the changes in the givenSaveLocationChange
object - this includes moving torrent and data file data.- Specified by:
changeLocation
in interfaceDownload
- Parameters:
slc
- The change to apply.- Throws:
DownloadException
- If there is a problem moving the data.
-
isStub
public boolean isStub()- Specified by:
isStub
in interfaceDownloadStub
-
canStubbify
public boolean canStubbify()- Specified by:
canStubbify
in interfaceDownload
-
stubbify
- Specified by:
stubbify
in interfaceDownload
- Throws:
DownloadException
DownloadRemovalVetoException
-
destubbify
- Specified by:
destubbify
in interfaceDownloadStub
- Throws:
DownloadException
-
getDistributedDatabases
- Specified by:
getDistributedDatabases
in interfaceDownload
- Returns:
-
getTorrentHash
public byte[] getTorrentHash()- Specified by:
getTorrentHash
in interfaceDownloadStub
-
getTorrentSize
public long getTorrentSize()- Specified by:
getTorrentSize
in interfaceDownloadStub
-
getStubFiles
- Specified by:
getStubFiles
in interfaceDownloadStub
-
notSupported
protected void notSupported() -
getPrimaryFile
Description copied from interface:Download
Returns the "Primary" file in the download. Usually the largest one- Specified by:
getPrimaryFile
in interfaceDownload
-
getRelationText
Description copied from class:LogRelation
A short description of what your class holds that can be printed by the logger- Overrides:
getRelationText
in classLogRelation
- Returns:
-
getQueryableInterfaces
Description copied from class:LogRelation
Query this class for a reference to another class that it may hold- Overrides:
getQueryableInterfaces
in classLogRelation
- Returns:
- If found, the class desired. Otherwise, null.
-