com.aelitis.azureus.core.networkmanager.impl
Class MultiPeerDownloader2

java.lang.Object
  extended by com.aelitis.azureus.core.networkmanager.impl.MultiPeerDownloader2
All Implemented Interfaces:
RateControlledEntity

public class MultiPeerDownloader2
extends Object
implements RateControlledEntity


Nested Class Summary
protected static class MultiPeerDownloader2.connectionEntry
           
protected static class MultiPeerDownloader2.connectionList
           
 
Field Summary
 
Fields inherited from interface com.aelitis.azureus.core.networkmanager.impl.RateControlledEntity
PRIORITY_HIGH, PRIORITY_NORMAL
 
Constructor Summary
MultiPeerDownloader2(RateHandler _main_handler)
          Create new downloader using the given "global" rate handler to limit all peers managed by this downloader.
 
Method Summary
 void addPeerConnection(NetworkConnectionBase connection)
          Add the given connection to the downloader.
 boolean canProcess(EventWaiter waiter)
          Is ready for a processing op.
 int doProcessing(EventWaiter waiter, int max_bytes)
          Attempt to do a processing operation.
 long getBytesReadyToWrite()
           
 int getConnectionCount(EventWaiter _waiter)
          If there are no connections then the waiter will be kicked when a connection arrives
 int getPriority()
          Get this entity's priority level.
 boolean getPriorityBoost()
          stats functions
 RateHandler getRateHandler()
           
 int getReadyConnectionCount(EventWaiter waiter)
          The waiter is kicked if the ready condition changes
 String getString()
           
 boolean removePeerConnection(NetworkConnectionBase connection)
          Remove the given connection from the downloader.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiPeerDownloader2

public MultiPeerDownloader2(RateHandler _main_handler)
Create new downloader using the given "global" rate handler to limit all peers managed by this downloader.

Parameters:
main_handler -
Method Detail

getRateHandler

public RateHandler getRateHandler()
Specified by:
getRateHandler in interface RateControlledEntity

addPeerConnection

public void addPeerConnection(NetworkConnectionBase connection)
Add the given connection to the downloader.

Parameters:
connection - to add

removePeerConnection

public boolean removePeerConnection(NetworkConnectionBase connection)
Remove the given connection from the downloader.

Parameters:
connection - to remove
Returns:
true if the connection was found and removed, false if not removed

canProcess

public boolean canProcess(EventWaiter waiter)
Description copied from interface: RateControlledEntity
Is ready for a processing op.

Specified by:
canProcess in interface RateControlledEntity
Returns:
true if it can process >0 bytes, false if not ready

getBytesReadyToWrite

public long getBytesReadyToWrite()
Specified by:
getBytesReadyToWrite in interface RateControlledEntity

getConnectionCount

public int getConnectionCount(EventWaiter _waiter)
Description copied from interface: RateControlledEntity
If there are no connections then the waiter will be kicked when a connection arrives

Specified by:
getConnectionCount in interface RateControlledEntity
Returns:

getReadyConnectionCount

public int getReadyConnectionCount(EventWaiter waiter)
Description copied from interface: RateControlledEntity
The waiter is kicked if the ready condition changes

Specified by:
getReadyConnectionCount in interface RateControlledEntity
Returns:

doProcessing

public int doProcessing(EventWaiter waiter,
                        int max_bytes)
Description copied from interface: RateControlledEntity
Attempt to do a processing operation.

Specified by:
doProcessing in interface RateControlledEntity
Returns:
true if >0 bytes were processed (success), false if 0 bytes were processed (failure)

getPriority

public int getPriority()
Description copied from interface: RateControlledEntity
Get this entity's priority level.

Specified by:
getPriority in interface RateControlledEntity
Returns:
priority

getPriorityBoost

public boolean getPriorityBoost()
Description copied from interface: RateControlledEntity
stats functions

Specified by:
getPriorityBoost in interface RateControlledEntity
Returns:

getString

public String getString()
Specified by:
getString in interface RateControlledEntity