org.gudy.azureus2.core3.download.impl
Class DownloadManagerController

java.lang.Object
  extended by org.gudy.azureus2.core3.logging.LogRelation
      extended by org.gudy.azureus2.core3.download.impl.DownloadManagerController
All Implemented Interfaces:
PeerManagerRegistrationAdapter, PEPeerManagerAdapter, SimpleTimer.TimerTickReceiver

public class DownloadManagerController
extends LogRelation
implements PEPeerManagerAdapter, PeerManagerRegistrationAdapter, SimpleTimer.TimerTickReceiver


Nested Class Summary
protected  class DownloadManagerController.fileInfoFacade
           
protected  class DownloadManagerController.FileInfoFacadeSet
           
 class DownloadManagerController.forceRecheckDiskManagerListener
           
 
Constructor Summary
protected DownloadManagerController(DownloadManagerImpl _download_manager)
           
 
Method Summary
 boolean activateRequest(InetSocketAddress address)
           
 void addDiskListener(DownloadManagerDiskListener listener)
           
 void addHTTPSeed(String address, int port)
           
 void addPeer(PEPeer peer)
           
 void addPiece(PEPiece piece)
           
 void addRateLimiter(LimitedRateGroup group, boolean upload)
           
protected  void calculateCompleteness(DiskManagerFileInfo[] active)
           
 boolean canForceRecheck()
           
 void dataBytesReceived(PEPeer peer, int bytes)
           
 void dataBytesSent(PEPeer peer, int bytes)
           
 void deactivateRequest(InetSocketAddress address)
           
protected  void destroy()
           
 void discarded(PEPeer peer, int bytes)
           
 void enqueueReadRequest(PEPeer peer, DiskManagerReadRequest request, DiskManagerReadRequestListener listener)
           
protected  void fileInfoChanged()
           
protected  void filePrioritiesChanged(List files)
           
 boolean filesExist(boolean expected_to_be_allocated)
           
 void forceRecheck(ForceRecheckListener l)
           
 void generateEvidence(IndentWriter writer)
           
 int getActivationCount()
           
 int getCryptoLevel()
          See NetworkManager.CRYPTO_OVERRIDE constants
 String getDescription()
           
 long getDiskListenerCount()
           
protected  DiskManager getDiskManager()
           
 DiskManagerFileInfo[] getDiskManagerFileInfo()
          Deprecated. use getDiskManagerFileInfoSet() instead
 DiskManagerFileInfoSet getDiskManagerFileInfoSet()
           
 String getDisplayName()
           
 int getDownloadRateLimitBytesPerSecond()
           
 String[] getEnabledNetworks()
           
protected  String getErrorDetail()
           
protected  int getErrorType()
           
 int getExtendedMessagingMode()
           
static ExternalSeedPlugin getExternalSeedPlugin()
           
 LogRelation getLogRelation()
           
 int[] getMaxConnections()
           
 int[] getMaxSeedConnections()
           
 int getMaxUploads()
           
protected  PEPeerManager getPeerManager()
           
 PeerManagerRegistration getPeerManagerRegistration()
           
 int getPermittedBytesToReceive()
           
 int getPermittedBytesToSend()
           
 int getPosition()
           
 Object[] getQueryableInterfaces()
          Query this class for a reference to another class that it may hold
 long getRandomSeed()
           
 LimitedRateGroup[] getRateLimiters(boolean upload)
           
 String getRelationText()
          A short description of what your class holds that can be printed by the logger
protected  byte[] getSecret2(TOTorrent torrent)
           
 byte[][] getSecrets()
           
 byte[][] getSecrets(int crypto_level)
           
 int getState()
           
protected  int getSubState()
           
 byte[] getTorrentInfoDict(PEPeer peer)
           
 int getTorrentInfoDictSize()
           
 String getTrackerClientExtensions()
           
 TRTrackerScraperResponse getTrackerScrapeResponse()
           
 int getUploadPriority()
           
 int getUploadRateLimitBytesPerSecond()
           
 boolean hasPriorityConnection()
           
 void initializeDiskManager(boolean open_for_seeding)
           
protected  void initializeDiskManagerSupport(int initialising_state, DiskManagerListener listener)
           
protected  boolean isDownloadComplete(boolean bIncludeDND)
          Determine if the download is complete, excluding DND files.
 boolean isForceStart()
           
 boolean isMetadataDownload()
           
 boolean isNATHealthy()
           
 boolean isNetworkEnabled(String network)
           
 boolean isPeerExchangeEnabled()
           
 boolean isPeerSourceEnabled(String peer_source)
           
 boolean isPeriodicRescanEnabled()
           
 boolean isStateSeeding()
           
 boolean manualRoute(NetworkConnection connection)
           
 void permittedReceiveBytesUsed(int bytes)
           
 void permittedSendBytesUsed(int bytes)
           
 void priorityConnectionChanged(boolean added)
           
 void protocolBytesReceived(PEPeer peer, int bytes)
           
 void protocolBytesSent(PEPeer peer, int bytes)
           
 void removeDiskListener(DownloadManagerDiskListener listener)
           
 void removePeer(PEPeer peer)
           
 void removePiece(PEPiece piece)
           
 void removeRateLimiter(LimitedRateGroup group, boolean upload)
           
 void restartDownload(boolean forceRecheck)
          Stops the current download, then restarts it again.
protected  void setDiskManager(DiskManager new_disk_manager, DiskManagerListener new_disk_manager_listener)
           
protected  void setFailed(String reason)
           
 void setForceStart(boolean _force_start)
           
protected  void setInitialState(int initial_state)
           
 void setPieceCheckingEnabled(boolean enabled)
           
 void setStateDownloading()
           
 void setStateFinishing()
           
protected  void setStateQueued()
           
 void setStateSeeding(boolean never_downloaded)
           
protected  void setStateWaiting()
           
 void setTrackerRefreshDelayOverrides(int percent)
           
 void startDownload(TRTrackerAnnouncer tracker_client)
           
 void statsRequest(PEPeer originator, Map request, Map reply)
           
 void stopIt(int _stateAfterStopping, boolean remove_torrent, boolean remove_data, boolean for_removal)
           
 void tick(long mono_now, int tick_count)
           
 
Methods inherited from class org.gudy.azureus2.core3.logging.LogRelation
propogatedRelationText, queryForClass, queryForClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DownloadManagerController

protected DownloadManagerController(DownloadManagerImpl _download_manager)
Method Detail

getExternalSeedPlugin

public static ExternalSeedPlugin getExternalSeedPlugin()

setInitialState

protected void setInitialState(int initial_state)

startDownload

public void startDownload(TRTrackerAnnouncer tracker_client)

initializeDiskManager

public void initializeDiskManager(boolean open_for_seeding)

initializeDiskManagerSupport

protected void initializeDiskManagerSupport(int initialising_state,
                                            DiskManagerListener listener)

canForceRecheck

public boolean canForceRecheck()

forceRecheck

public void forceRecheck(ForceRecheckListener l)

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:
setStateFinishing in interface PEPeerManagerAdapter

setStateDownloading

public void setStateDownloading()

setStateSeeding

public void setStateSeeding(boolean never_downloaded)
Specified by:
setStateSeeding in interface PEPeerManagerAdapter

isStateSeeding

public boolean isStateSeeding()

setStateQueued

protected void setStateQueued()

getState

public int getState()

getSubState

protected int getSubState()

restartDownload

public void restartDownload(boolean forceRecheck)
Stops the current download, then restarts it again.

Specified by:
restartDownload in interface PEPeerManagerAdapter

destroy

protected void destroy()

isPeerSourceEnabled

public boolean isPeerSourceEnabled(String peer_source)
Specified by:
isPeerSourceEnabled in interface PeerManagerRegistrationAdapter
Specified by:
isPeerSourceEnabled in interface PEPeerManagerAdapter

isNetworkEnabled

public boolean isNetworkEnabled(String network)
Specified by:
isNetworkEnabled in interface PEPeerManagerAdapter

getEnabledNetworks

public String[] getEnabledNetworks()
Specified by:
getEnabledNetworks in interface PEPeerManagerAdapter

getSecrets

public byte[][] getSecrets()
Specified by:
getSecrets in interface PeerManagerRegistrationAdapter

getSecrets

public byte[][] getSecrets(int crypto_level)
Specified by:
getSecrets in interface PEPeerManagerAdapter

getSecret2

protected byte[] getSecret2(TOTorrent torrent)
                     throws TOTorrentException
Throws:
TOTorrentException

manualRoute

public boolean manualRoute(NetworkConnection connection)
Specified by:
manualRoute in interface PeerManagerRegistrationAdapter

getRandomSeed

public long getRandomSeed()
Specified by:
getRandomSeed in interface PEPeerManagerAdapter

addRateLimiter

public void addRateLimiter(LimitedRateGroup group,
                           boolean upload)

getRateLimiters

public LimitedRateGroup[] getRateLimiters(boolean upload)

removeRateLimiter

public void removeRateLimiter(LimitedRateGroup group,
                              boolean upload)

enqueueReadRequest

public void enqueueReadRequest(PEPeer peer,
                               DiskManagerReadRequest request,
                               DiskManagerReadRequestListener listener)
Specified by:
enqueueReadRequest in interface PEPeerManagerAdapter

activateRequest

public boolean activateRequest(InetSocketAddress address)
Specified by:
activateRequest in interface PeerManagerRegistrationAdapter

deactivateRequest

public void deactivateRequest(InetSocketAddress address)
Specified by:
deactivateRequest in interface PeerManagerRegistrationAdapter

getActivationCount

public int getActivationCount()

getPeerManagerRegistration

public PeerManagerRegistration getPeerManagerRegistration()
Specified by:
getPeerManagerRegistration in interface PEPeerManagerAdapter

isForceStart

public boolean isForceStart()

setForceStart

public void setForceStart(boolean _force_start)

setFailed

protected void setFailed(String reason)

filesExist

public boolean filesExist(boolean expected_to_be_allocated)

getDiskManagerFileInfoSet

public DiskManagerFileInfoSet getDiskManagerFileInfoSet()

getDiskManagerFileInfo

public DiskManagerFileInfo[] getDiskManagerFileInfo()
Deprecated. use getDiskManagerFileInfoSet() instead


fileInfoChanged

protected void fileInfoChanged()

filePrioritiesChanged

protected void filePrioritiesChanged(List files)

calculateCompleteness

protected void calculateCompleteness(DiskManagerFileInfo[] active)

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

protected PEPeerManager getPeerManager()

getDiskManager

protected DiskManager getDiskManager()

getErrorDetail

protected String getErrorDetail()

getErrorType

protected int getErrorType()

setDiskManager

protected void setDiskManager(DiskManager new_disk_manager,
                              DiskManagerListener new_disk_manager_listener)

addDiskListener

public void addDiskListener(DownloadManagerDiskListener listener)

removeDiskListener

public void removeDiskListener(DownloadManagerDiskListener listener)

getDiskListenerCount

public long getDiskListenerCount()

getDisplayName

public String getDisplayName()
Specified by:
getDisplayName in interface PEPeerManagerAdapter

getUploadRateLimitBytesPerSecond

public int getUploadRateLimitBytesPerSecond()
Specified by:
getUploadRateLimitBytesPerSecond in interface PEPeerManagerAdapter

getDownloadRateLimitBytesPerSecond

public int getDownloadRateLimitBytesPerSecond()
Specified by:
getDownloadRateLimitBytesPerSecond in interface PEPeerManagerAdapter

getPermittedBytesToReceive

public int getPermittedBytesToReceive()
Specified by:
getPermittedBytesToReceive in interface PEPeerManagerAdapter

permittedReceiveBytesUsed

public void permittedReceiveBytesUsed(int bytes)
Specified by:
permittedReceiveBytesUsed in interface PEPeerManagerAdapter

getPermittedBytesToSend

public int getPermittedBytesToSend()
Specified by:
getPermittedBytesToSend in interface PEPeerManagerAdapter

permittedSendBytesUsed

public void permittedSendBytesUsed(int bytes)
Specified by:
permittedSendBytesUsed in interface PEPeerManagerAdapter

getMaxUploads

public int getMaxUploads()
Specified by:
getMaxUploads in interface PEPeerManagerAdapter

getMaxConnections

public int[] getMaxConnections()
Specified by:
getMaxConnections in interface PEPeerManagerAdapter

getMaxSeedConnections

public int[] getMaxSeedConnections()
Specified by:
getMaxSeedConnections in interface PEPeerManagerAdapter

getUploadPriority

public int getUploadPriority()
Specified by:
getUploadPriority in interface PEPeerManagerAdapter

getExtendedMessagingMode

public int getExtendedMessagingMode()
Specified by:
getExtendedMessagingMode in interface PEPeerManagerAdapter

isPeerExchangeEnabled

public boolean isPeerExchangeEnabled()
Specified by:
isPeerExchangeEnabled in interface PEPeerManagerAdapter

getCryptoLevel

public int getCryptoLevel()
Description copied from interface: PEPeerManagerAdapter
See NetworkManager.CRYPTO_OVERRIDE constants

Specified by:
getCryptoLevel in interface PEPeerManagerAdapter
Returns:

isPeriodicRescanEnabled

public boolean isPeriodicRescanEnabled()
Specified by:
isPeriodicRescanEnabled in interface PEPeerManagerAdapter

getTrackerScrapeResponse

public TRTrackerScraperResponse getTrackerScrapeResponse()
Specified by:
getTrackerScrapeResponse in interface PEPeerManagerAdapter

getTrackerClientExtensions

public String getTrackerClientExtensions()
Specified by:
getTrackerClientExtensions in interface PEPeerManagerAdapter

setTrackerRefreshDelayOverrides

public void setTrackerRefreshDelayOverrides(int percent)
Specified by:
setTrackerRefreshDelayOverrides in interface PEPeerManagerAdapter

isNATHealthy

public boolean isNATHealthy()
Specified by:
isNATHealthy in interface PEPeerManagerAdapter

isMetadataDownload

public boolean isMetadataDownload()
Specified by:
isMetadataDownload in interface PEPeerManagerAdapter

getTorrentInfoDictSize

public int getTorrentInfoDictSize()
Specified by:
getTorrentInfoDictSize in interface PEPeerManagerAdapter

getTorrentInfoDict

public byte[] getTorrentInfoDict(PEPeer peer)
Specified by:
getTorrentInfoDict in interface PEPeerManagerAdapter

addPeer

public void addPeer(PEPeer peer)
Specified by:
addPeer in interface PEPeerManagerAdapter

removePeer

public void removePeer(PEPeer peer)
Specified by:
removePeer in interface PEPeerManagerAdapter

addPiece

public void addPiece(PEPiece piece)
Specified by:
addPiece in interface PEPeerManagerAdapter

removePiece

public void removePiece(PEPiece piece)
Specified by:
removePiece in interface PEPeerManagerAdapter

discarded

public void discarded(PEPeer peer,
                      int bytes)
Specified by:
discarded in interface PEPeerManagerAdapter

protocolBytesReceived

public void protocolBytesReceived(PEPeer peer,
                                  int bytes)
Specified by:
protocolBytesReceived in interface PEPeerManagerAdapter

dataBytesReceived

public void dataBytesReceived(PEPeer peer,
                              int bytes)
Specified by:
dataBytesReceived in interface PEPeerManagerAdapter

protocolBytesSent

public void protocolBytesSent(PEPeer peer,
                              int bytes)
Specified by:
protocolBytesSent in interface PEPeerManagerAdapter

dataBytesSent

public void dataBytesSent(PEPeer peer,
                          int bytes)
Specified by:
dataBytesSent in interface PEPeerManagerAdapter

getPosition

public int getPosition()
Specified by:
getPosition in interface PEPeerManagerAdapter

tick

public void tick(long mono_now,
                 int tick_count)
Specified by:
tick in interface SimpleTimer.TimerTickReceiver

statsRequest

public void statsRequest(PEPeer originator,
                         Map request,
                         Map reply)
Specified by:
statsRequest in interface PEPeerManagerAdapter

addHTTPSeed

public void addHTTPSeed(String address,
                        int port)
Specified by:
addHTTPSeed in interface PEPeerManagerAdapter

priorityConnectionChanged

public void priorityConnectionChanged(boolean added)
Specified by:
priorityConnectionChanged in interface PEPeerManagerAdapter

hasPriorityConnection

public boolean hasPriorityConnection()
Specified by:
hasPriorityConnection in interface PEPeerManagerAdapter

getDescription

public String getDescription()
Specified by:
getDescription in interface PeerManagerRegistrationAdapter

getLogRelation

public LogRelation getLogRelation()
Specified by:
getLogRelation in interface PEPeerManagerAdapter

getRelationText

public String getRelationText()
Description copied from class: LogRelation
A short description of what your class holds that can be printed by the logger

Overrides:
getRelationText in class LogRelation
Returns:

getQueryableInterfaces

public Object[] getQueryableInterfaces()
Description copied from class: LogRelation
Query this class for a reference to another class that it may hold

Overrides:
getQueryableInterfaces in class LogRelation
Returns:
If found, the class desired. Otherwise, null.

generateEvidence

public void generateEvidence(IndentWriter writer)