com.aelitis.azureus.core.speedmanager.impl.v2
Class SpeedManagerAlgorithmProviderDHTPing

java.lang.Object
  extended by com.aelitis.azureus.core.speedmanager.impl.v2.SpeedManagerAlgorithmProviderDHTPing
All Implemented Interfaces:
SpeedManagerAlgorithmProvider, COConfigurationListener

public class SpeedManagerAlgorithmProviderDHTPing
extends java.lang.Object
implements SpeedManagerAlgorithmProvider, COConfigurationListener

This class implements an Vivaldi strategy for adjusting the upload limit. It will every 30 seconds calculate the distance to the center of the Vivaldi structure and if it determines that it is going away from it will lower the limit. If it getting closer it will increase the upload limit.


Field Summary
 
Fields inherited from interface com.aelitis.azureus.core.speedmanager.impl.SpeedManagerAlgorithmProvider
UPDATE_PERIOD_MILLIS
 
Method Summary
 void calculate(SpeedManagerPingSource[] sources)
          Called whenever a new set of ping values is available for processing
 void configurationSaved()
           
 void destroy()
           
 boolean getAdjustsDownloadLimits()
          Indicates whether or not the provider is adjusting download as well as upload limits
 int getCurrentChokeSpeed()
          Returns the current view of when choking occurs
 int getCurrentPingMillis()
           
 int getIdlePingMillis()
          Various getters for interesting info shown in stats view
 int getMaxPingMillis()
           
 int getMaxUploadSpeed()
           
protected  void log(java.lang.String str)
           
 void pingSourceFailed(SpeedManagerPingSource source)
          Ping source has failed
 void pingSourceFound(SpeedManagerPingSource source, boolean is_replacement)
          Called when a new source of ping times has been found
 void reset()
          Reset any state to start of day values
 void updateStats()
          Called periodically (see period above) to allow stats to be updated.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

destroy

public void destroy()
Specified by:
destroy in interface SpeedManagerAlgorithmProvider

configurationSaved

public void configurationSaved()
Specified by:
configurationSaved in interface COConfigurationListener

reset

public void reset()
Reset any state to start of day values

Specified by:
reset in interface SpeedManagerAlgorithmProvider

updateStats

public void updateStats()
Called periodically (see period above) to allow stats to be updated.

Specified by:
updateStats in interface SpeedManagerAlgorithmProvider

pingSourceFound

public void pingSourceFound(SpeedManagerPingSource source,
                            boolean is_replacement)
Called when a new source of ping times has been found

Specified by:
pingSourceFound in interface SpeedManagerAlgorithmProvider
Parameters:
source - -
is_replacement - One of the initial sources or a replacement for a failed one

pingSourceFailed

public void pingSourceFailed(SpeedManagerPingSource source)
Ping source has failed

Specified by:
pingSourceFailed in interface SpeedManagerAlgorithmProvider
Parameters:
source - -

calculate

public void calculate(SpeedManagerPingSource[] sources)
Called whenever a new set of ping values is available for processing

Specified by:
calculate in interface SpeedManagerAlgorithmProvider
Parameters:
sources - -

getIdlePingMillis

public int getIdlePingMillis()
Various getters for interesting info shown in stats view

Specified by:
getIdlePingMillis in interface SpeedManagerAlgorithmProvider
Returns:
-

getCurrentPingMillis

public int getCurrentPingMillis()
Specified by:
getCurrentPingMillis in interface SpeedManagerAlgorithmProvider

getMaxPingMillis

public int getMaxPingMillis()
Specified by:
getMaxPingMillis in interface SpeedManagerAlgorithmProvider

getCurrentChokeSpeed

public int getCurrentChokeSpeed()
Returns the current view of when choking occurs

Specified by:
getCurrentChokeSpeed in interface SpeedManagerAlgorithmProvider
Returns:
speed in bytes/sec

getMaxUploadSpeed

public int getMaxUploadSpeed()
Specified by:
getMaxUploadSpeed in interface SpeedManagerAlgorithmProvider

getAdjustsDownloadLimits

public boolean getAdjustsDownloadLimits()
Description copied from interface: SpeedManagerAlgorithmProvider
Indicates whether or not the provider is adjusting download as well as upload limits

Specified by:
getAdjustsDownloadLimits in interface SpeedManagerAlgorithmProvider
Returns:

log

protected void log(java.lang.String str)