Class DownloadManagerController
java.lang.Object
com.biglybt.core.logging.LogRelation
com.biglybt.core.download.impl.DownloadManagerController
- All Implemented Interfaces:
PEPeerManagerAdapter, PeerManagerRegistrationAdapter, SimpleTimer.TimerTickReceiver
public class DownloadManagerController
extends LogRelation
implements PEPeerManagerAdapter, PeerManagerRegistrationAdapter, SimpleTimer.TimerTickReceiver
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classprotected classprotected classclass(package private) static interface -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BloomFilterprivate longprivate intprivate longprivate static final int(package private) booleanprivate static final intprivate booleanprivate boolean(package private) final Objectprivate boolean(package private) final AEMonitor(package private) longprivate final ListenerManager(package private) static final ListenerManagerprivate final AEMonitorprivate DiskManagerListenerprivate WeakReference<DiskManagerPiece[]> private Objectprivate DiskManager(package private) final DownloadManagerImpl(package private) DownloadManagerStateprivate Stringprivate intprivate intprivate static ExternalSeedPluginprivate static booleanprivate Object(package private) final AEMonitor(package private) final DownloadManagerController.FileInfoFacadeSet(package private) booleanprivate boolean(package private) final GlobalManagerStatsprivate final LinkedList<ExternalSeedPeer> private static final intprivate booleanprivate static final intprivate static final intprivate WeakReference<byte[]> private intprivate static final intprivate PEPeerManagerprivate PeerManagerRegistrationprivate booleanprivate long(package private) static longprivate static final longprivate static final longprivate final AEMonitorprivate int(package private) final DownloadManagerStatsImplprivate int(package private) static booleanFields inherited from interface PeerManagerRegistrationAdapter
AT_ACCEPTED, AT_ACCEPTED_PROBE, AT_DECLINED -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDownloadManagerController(DownloadManagerImpl _download_manager) -
Method Summary
Modifier and TypeMethodDescriptionintactivateRequest(InetSocketAddress address) voidaddDiskListener(DownloadManagerDiskListener listener) voidaddHTTPSeed(String address, int port) voidvoidvoidaddRateLimiter(LimitedRateGroup group, boolean upload) private voidprotected voidcalculateCompleteness(DiskManagerFileInfo[] active) booleanvoiddataBytesReceived(PEPeer peer, long bytes) voiddataBytesSent(PEPeer peer, long bytes) voiddeactivateRequest(InetSocketAddress address) protected voiddestroy()voidvoidenqueueReadRequest(PEPeer peer, DiskManagerReadRequest request, DiskManagerReadRequestListener listener) protected voidprotected voidfilePrioritiesChanged(List files) booleanfilesExist(boolean expected_to_be_allocated, boolean test_only) voidforceRecheck(Map resume_data) voidgenerateEvidence(IndentWriter writer, boolean full) intintSee NetworkManager.CRYPTO_OVERRIDE constantslongprotected DiskManagerDeprecated.use getDiskManagerFileInfoSet() insteadintintString[]protected Stringprotected intprotected intintstatic ExternalSeedPluginbyte[]intgetHashOverrideLocalPort(boolean only_if_allocated) int[]int[]intintbyte[]protected PEPeerManagerlonglongintObject[]Query this class for a reference to another class that it may holdlonggetRateLimiters(boolean upload) A short description of what your class holds that can be printed by the loggerprotected byte[]getSecret2(TOTorrent torrent) byte[][]byte[][]getSecrets(int crypto_level) intgetState()protected intbyte[]intbyte[]getTorrentInfoDict(PEPeer peer) intintintbooleanvoidinitializeDiskManager(boolean open_for_seeding) protected voidinitializeDiskManagerSupport(int initialising_state, DiskManagerListener listener) protected booleanisDownloadComplete(boolean bIncludeDND) Determine if the download is complete, excluding DND files.protected booleanbooleanbooleanbooleanbooleanisNetworkEnabled(String network) booleanbooleanisPeerSourceEnabled(String peer_source) booleanbooleanbooleanmanualRoute(NetworkConnection connection) voidpermittedReceiveBytesUsed(int bytes) voidpermittedSendBytesUsed(int bytes) voidpriorityConnectionChanged(boolean added) voidprotocolBytesReceived(PEPeer peer, long bytes) voidprotocolBytesSent(PEPeer peer, long bytes) protected voidvoidvoidremovePeer(PEPeer peer) voidremovePiece(PEPiece piece) voidremoveRateLimiter(LimitedRateGroup group, boolean upload) voidrestartDownload(boolean forceRecheck) Stops the current download, then restarts it again.voidprotected voidsetDiskManager(DiskManager new_disk_manager, DiskManagerListener new_disk_manager_listener) protected voidvoidprotected voidsetErrorState(int type, String reason, int flags) protected voidprivate voidprivate voidsetFailed(DiskManager dm) protected voidprotected voidvoidsetForceStart(boolean _force_start) protected voidsetInitialState(int initial_state) voidsetPieceCheckingEnabled(boolean enabled) (package private) voidsetState(int _state, boolean _inform_changed) voidvoidprotected voidvoidsetStateSeeding(boolean never_downloaded) protected voidprivate voidsetSubState(int ss) voidsetTrackerRefreshDelayOverrides(int percent) voidvoidstartDownload(TRTrackerAnnouncer tracker_client) voidstatsRequest(PEPeer originator, Map request, Map reply) voidstopIt(int _stateAfterStopping, boolean remove_torrent, boolean remove_data, boolean for_removal) voidtick(long mono_now, int tick_count) Methods inherited from class LogRelation
propogatedRelationText, queryForClass
-
Field Details
-
STATE_FLAG_HASDND
private static final long STATE_FLAG_HASDND- See Also:
-
STATE_FLAG_COMPLETE_NO_DND
private static final long STATE_FLAG_COMPLETE_NO_DND- See Also:
-
skeleton_builds
static long skeleton_builds -
tracker_stats_exclude_lan
static boolean tracker_stats_exclude_lan -
ext_seed_plugin
-
ext_seed_plugin_tried
private static boolean ext_seed_plugin_tried -
LDT_DL_ADDED
private static final int LDT_DL_ADDED- See Also:
-
LDT_DL_REMOVED
private static final int LDT_DL_REMOVED- See Also:
-
disk_listeners_agregator
-
disk_listeners
-
disk_listeners_mon
-
control_mon
-
state_mon
-
facade_mon
-
download_manager
-
download_manager_state
DownloadManagerState download_manager_state -
stats
-
state_set_by_method
private volatile int state_set_by_method -
substate
private volatile int substate -
force_start
private volatile boolean force_start -
is_force_rechecking
private volatile boolean is_force_rechecking -
disk_manager_use_accessors
-
disk_manager_listener_use_accessors
-
disk_manager_pieces_snapshot_lock
-
disk_manager_pieces_snapshot
-
fileFacadeSet
-
files_facade_destroyed
boolean files_facade_destroyed -
cached_complete_excluding_dnd
private boolean cached_complete_excluding_dnd -
cached_has_dnd_files
private boolean cached_has_dnd_files -
cached_values_set
private boolean cached_values_set -
cached_networks
-
cached_networks_lock
-
peer_manager_registration
-
peer_manager
-
dm_attribute_listener
-
external_rate_limiters_cow_lock
-
external_rate_limiters_cow
-
errorDetail
-
errorType
private int errorType -
errorFlags
private int errorFlags -
global_stats
-
bInitialized
boolean bInitialized -
data_send_rate_at_close
long data_send_rate_at_close -
ACTIVATION_REBUILD_TIME
private static final int ACTIVATION_REBUILD_TIME- See Also:
-
BLOOM_SIZE
private static final int BLOOM_SIZE- See Also:
-
activation_bloom
-
activation_bloom_create_time
private volatile long activation_bloom_create_time -
activation_count
private volatile int activation_count -
activation_count_time
private volatile long activation_count_time -
piece_checking_enabled
private boolean piece_checking_enabled -
priority_connection_count
private long priority_connection_count -
HTTP_SEEDS_MAX
private static final int HTTP_SEEDS_MAX- See Also:
-
http_seeds
-
md_info_dict_size
private int md_info_dict_size -
md_info_dict_ref
-
MD_INFO_PEER_HISTORY_MAX
private static final int MD_INFO_PEER_HISTORY_MAX- See Also:
-
md_info_peer_history
-
-
Constructor Details
-
DownloadManagerController
-
-
Method Details
-
getExternalSeedPlugin
-
setDownloadManagerState
-
setInitialState
protected void setInitialState(int initial_state) -
startDownload
-
initializeDiskManager
public void initializeDiskManager(boolean open_for_seeding) -
initializeDiskManagerSupport
-
canForceRecheck
public boolean canForceRecheck() -
isForceRechecking
protected boolean isForceRechecking() -
forceRecheck
-
setPieceCheckingEnabled
public void setPieceCheckingEnabled(boolean enabled) -
stopIt
public void stopIt(int _stateAfterStopping, boolean remove_torrent, boolean remove_data, boolean for_removal) -
setStateWaiting
protected void setStateWaiting() -
setStateFinishing
public void setStateFinishing()- Specified by:
setStateFinishingin interfacePEPeerManagerAdapter
-
setStateDownloading
public void setStateDownloading() -
setStateSeeding
public void setStateSeeding(boolean never_downloaded) - Specified by:
setStateSeedingin interfacePEPeerManagerAdapter
-
isStateSeeding
public boolean isStateSeeding() -
setStateQueued
protected void setStateQueued() -
getState
public int getState() -
getSubState
protected int getSubState() -
setSubState
private void setSubState(int ss) -
setState
void setState(int _state, boolean _inform_changed) - Parameters:
_state-_inform_changed- trigger informStateChange (which may not trigger listeners if state hasn't changed since last trigger)
-
restartDownload
public void restartDownload(boolean forceRecheck) Stops the current download, then restarts it again.- Specified by:
restartDownloadin interfacePEPeerManagerAdapter
-
destroy
protected void destroy() -
saveTorrentState
public void saveTorrentState()- Specified by:
saveTorrentStatein interfacePEPeerManagerAdapter
-
isPeerSourceEnabled
- Specified by:
isPeerSourceEnabledin interfacePeerManagerRegistrationAdapter- Specified by:
isPeerSourceEnabledin interfacePEPeerManagerAdapter
-
cacheNetworks
private void cacheNetworks() -
isNetworkEnabled
- Specified by:
isNetworkEnabledin interfacePEPeerManagerAdapter
-
getEnabledNetworks
- Specified by:
getEnabledNetworksin interfacePEPeerManagerAdapter
-
getSecrets
public byte[][] getSecrets()- Specified by:
getSecretsin interfacePeerManagerRegistrationAdapter
-
getHashOverride
public byte[] getHashOverride()- Specified by:
getHashOverridein interfacePeerManagerRegistrationAdapter
-
getPeerID
public byte[] getPeerID()- Specified by:
getPeerIDin interfacePeerManagerRegistrationAdapter
-
getNbPieces
public int getNbPieces()- Specified by:
getNbPiecesin interfacePeerManagerRegistrationAdapter
-
getHashOverrideLocalPort
public int getHashOverrideLocalPort(boolean only_if_allocated) - Specified by:
getHashOverrideLocalPortin interfacePeerManagerRegistrationAdapter
-
getSecrets
public byte[][] getSecrets(int crypto_level) - Specified by:
getSecretsin interfacePEPeerManagerAdapter
-
getSecret2
- Throws:
TOTorrentException
-
manualRoute
- Specified by:
manualRoutein interfacePeerManagerRegistrationAdapter
-
getRandomSeed
public long getRandomSeed()- Specified by:
getRandomSeedin interfacePEPeerManagerAdapter
-
addRateLimiter
-
getRateLimiters
-
removeRateLimiter
-
enqueueReadRequest
public void enqueueReadRequest(PEPeer peer, DiskManagerReadRequest request, DiskManagerReadRequestListener listener) - Specified by:
enqueueReadRequestin interfacePEPeerManagerAdapter
-
activateRequest
- Specified by:
activateRequestin interfacePeerManagerRegistrationAdapter- Parameters:
address-- Returns:
- one of the AT_ constants
-
deactivateRequest
- Specified by:
deactivateRequestin interfacePeerManagerRegistrationAdapter
-
getTargetHash
public byte[] getTargetHash()- Specified by:
getTargetHashin interfacePEPeerManagerAdapter
-
getTCPListeningPortNumber
public int getTCPListeningPortNumber()- Specified by:
getTCPListeningPortNumberin interfacePEPeerManagerAdapter
-
getActivationCount
public int getActivationCount() -
getPeerManagerRegistration
- Specified by:
getPeerManagerRegistrationin interfacePEPeerManagerAdapter
-
isForceStart
public boolean isForceStart() -
setForceStart
public void setForceStart(boolean _force_start) -
setFailed
-
setFailed
-
setFailed
-
setErrorState
-
setFailed
-
setFailed
-
filesExist
public boolean filesExist(boolean expected_to_be_allocated, boolean test_only) -
getDiskManagerFileInfoSet
-
getDiskManagerFileInfo
Deprecated.use getDiskManagerFileInfoSet() instead -
fileInfoChanged
protected void fileInfoChanged() -
filePrioritiesChanged
-
calculateCompleteness
-
isDownloadComplete
protected boolean isDownloadComplete(boolean bIncludeDND) Determine if the download is complete, excluding DND files. This function is mostly cached when there is a DiskManager.- Returns:
- completion state
-
getPeerManager
-
getDiskManager
-
getDiskManagerPiecesSnapshot
-
getErrorDetail
-
getErrorType
protected int getErrorType() -
getErrorFlags
protected int getErrorFlags() -
setDiskManager
protected void setDiskManager(DiskManager new_disk_manager, DiskManagerListener new_disk_manager_listener) -
addDiskListener
-
removeDiskListener
-
getDiskListenerCount
public long getDiskListenerCount() -
getDisplayName
- Specified by:
getDisplayNamein interfacePEPeerManagerAdapter
-
getEffectiveUploadRateLimitBytesPerSecond
public int getEffectiveUploadRateLimitBytesPerSecond()- Specified by:
getEffectiveUploadRateLimitBytesPerSecondin interfacePEPeerManagerAdapter
-
getUploadRateLimitBytesPerSecond
public int getUploadRateLimitBytesPerSecond()- Specified by:
getUploadRateLimitBytesPerSecondin interfacePEPeerManagerAdapter
-
setUploadRateLimitBytesPerSecond
public void setUploadRateLimitBytesPerSecond(int b) - Specified by:
setUploadRateLimitBytesPerSecondin interfacePEPeerManagerAdapter
-
getDownloadRateLimitBytesPerSecond
public int getDownloadRateLimitBytesPerSecond()- Specified by:
getDownloadRateLimitBytesPerSecondin interfacePEPeerManagerAdapter
-
setDownloadRateLimitBytesPerSecond
public void setDownloadRateLimitBytesPerSecond(int b) - Specified by:
setDownloadRateLimitBytesPerSecondin interfacePEPeerManagerAdapter
-
rateLimitChanged
protected void rateLimitChanged() -
getPermittedBytesToReceive
public long getPermittedBytesToReceive()- Specified by:
getPermittedBytesToReceivein interfacePEPeerManagerAdapter
-
permittedReceiveBytesUsed
public void permittedReceiveBytesUsed(int bytes) - Specified by:
permittedReceiveBytesUsedin interfacePEPeerManagerAdapter
-
getPermittedBytesToSend
public long getPermittedBytesToSend()- Specified by:
getPermittedBytesToSendin interfacePEPeerManagerAdapter
-
permittedSendBytesUsed
public void permittedSendBytesUsed(int bytes) - Specified by:
permittedSendBytesUsedin interfacePEPeerManagerAdapter
-
getMaxUploads
public int getMaxUploads()- Specified by:
getMaxUploadsin interfacePEPeerManagerAdapter
-
getMaxConnections
public int[] getMaxConnections()- Specified by:
getMaxConnectionsin interfacePEPeerManagerAdapter
-
getMaxSeedConnections
public int[] getMaxSeedConnections()- Specified by:
getMaxSeedConnectionsin interfacePEPeerManagerAdapter
-
getUploadPriority
public int getUploadPriority()- Specified by:
getUploadPriorityin interfacePEPeerManagerAdapter
-
getExtendedMessagingMode
public int getExtendedMessagingMode()- Specified by:
getExtendedMessagingModein interfacePeerManagerRegistrationAdapter- Specified by:
getExtendedMessagingModein interfacePEPeerManagerAdapter
-
isPeerExchangeEnabled
public boolean isPeerExchangeEnabled()- Specified by:
isPeerExchangeEnabledin interfacePEPeerManagerAdapter
-
getCryptoLevel
public int getCryptoLevel()Description copied from interface:PEPeerManagerAdapterSee NetworkManager.CRYPTO_OVERRIDE constants- Specified by:
getCryptoLevelin interfacePEPeerManagerAdapter- Returns:
-
isPeriodicRescanEnabled
public boolean isPeriodicRescanEnabled()- Specified by:
isPeriodicRescanEnabledin interfacePEPeerManagerAdapter
-
getTrackerScrapeResponse
- Specified by:
getTrackerScrapeResponsein interfacePEPeerManagerAdapter
-
getTrackerClientExtensions
- Specified by:
getTrackerClientExtensionsin interfacePEPeerManagerAdapter
-
setTrackerRefreshDelayOverrides
public void setTrackerRefreshDelayOverrides(int percent) - Specified by:
setTrackerRefreshDelayOverridesin interfacePEPeerManagerAdapter
-
isNATHealthy
public boolean isNATHealthy()- Specified by:
isNATHealthyin interfacePEPeerManagerAdapter
-
isMetadataDownload
public boolean isMetadataDownload()- Specified by:
isMetadataDownloadin interfacePEPeerManagerAdapter
-
getTorrentInfoDictSize
public int getTorrentInfoDictSize()- Specified by:
getTorrentInfoDictSizein interfacePEPeerManagerAdapter
-
getTorrentInfoDict
- Specified by:
getTorrentInfoDictin interfacePEPeerManagerAdapter
-
addPeer
- Specified by:
addPeerin interfacePEPeerManagerAdapter
-
removePeer
- Specified by:
removePeerin interfacePEPeerManagerAdapter
-
addPiece
- Specified by:
addPiecein interfacePEPeerManagerAdapter
-
removePiece
- Specified by:
removePiecein interfacePEPeerManagerAdapter
-
discarded
- Specified by:
discardedin interfacePEPeerManagerAdapter
-
protocolBytesReceived
- Specified by:
protocolBytesReceivedin interfacePEPeerManagerAdapter
-
dataBytesReceived
- Specified by:
dataBytesReceivedin interfacePEPeerManagerAdapter
-
protocolBytesSent
- Specified by:
protocolBytesSentin interfacePEPeerManagerAdapter
-
dataBytesSent
- Specified by:
dataBytesSentin interfacePEPeerManagerAdapter
-
getPosition
public int getPosition()- Specified by:
getPositionin interfacePEPeerManagerAdapter
-
tick
public void tick(long mono_now, int tick_count) - Specified by:
tickin interfaceSimpleTimer.TimerTickReceiver
-
statsRequest
- Specified by:
statsRequestin interfacePEPeerManagerAdapter
-
addHTTPSeed
- Specified by:
addHTTPSeedin interfacePEPeerManagerAdapter
-
priorityConnectionChanged
public void priorityConnectionChanged(boolean added) - Specified by:
priorityConnectionChangedin interfacePEPeerManagerAdapter
-
hasPriorityConnection
public boolean hasPriorityConnection()- Specified by:
hasPriorityConnectionin interfacePEPeerManagerAdapter
-
getDescription
- Specified by:
getDescriptionin interfacePeerManagerRegistrationAdapter
-
getLogRelation
- Specified by:
getLogRelationin interfacePEPeerManagerAdapter
-
getRelationText
Description copied from class:LogRelationA short description of what your class holds that can be printed by the logger- Overrides:
getRelationTextin classLogRelation- Returns:
-
getQueryableInterfaces
Description copied from class:LogRelationQuery this class for a reference to another class that it may hold- Overrides:
getQueryableInterfacesin classLogRelation- Returns:
- If found, the class desired. Otherwise, null.
-
generateEvidence
-