org.gudy.azureus2.core3.peer
Interface PEPeerManager

All Known Subinterfaces:
PEPeerControl
All Known Implementing Classes:
PEPeerControlImpl

public interface PEPeerManager


Nested Class Summary
static interface PEPeerManager.StatsReceiver
           
 
Method Summary
 void addListener(PEPeerManagerListener l)
           
 void addPeer(PEPeer peer)
           
 void addPeer(String ip_address, int tcp_port, int udp_port, boolean use_crypto, Map user_data)
          Add a new peer, using the default internal PEPeer implementation (like for peers given in announce reply), using the given address and port.
 void addPiece(PEPiece piece, int pieceNumber, PEPeer for_peer)
           
 void addRateLimiter(LimitedRateGroup group, boolean upload)
           
 boolean canToggleSuperSeedMode()
           
 DiskManagerReadRequest createDiskManagerRequest(int pieceNumber, int offset, int length)
           
 PeerExchangerItem createPeerExchangeConnection(PEPeerTransport base_peer)
          Register a peer connection for peer exchange handling.
 PEPeerStats createPeerStats(PEPeer owner)
           
 void dataBytesReceived(PEPeer peer, int l)
          Data bytes received.
 void dataBytesSent(PEPeer peer, int l)
          Data bytes sent.
 void discarded(PEPeer peer, int l)
           
 void generateEvidence(IndentWriter writer)
           
 PEPeerManagerAdapter getAdapter()
           
 int[] getAvailability()
           
 int getAvailability(int pieceNumber)
           
 long getAvailWentBadTime()
           
 int getAverageCompletionInThousandNotation()
          Get the average completion percentage of connected peers.
 float getAvgAvail()
           
 int getBytesQueuedForUpload()
           
 long getBytesUnavailable()
           
 Object getData(String key)
          To retreive arbitrary objects against this object.
 DiskManager getDiskManager()
           
 String getDisplayName()
           
 LimitedRateGroup getDownloadLimitedRateGroup()
          Get the limited rate group used for download limiting.
 int getDownloadRateLimitBytesPerSecond()
           
 String getElapsedTime()
           
 long getETA(boolean smoothed)
           
 byte[] getHash()
           
 long getHiddenBytes()
           
 long getLastRemoteConnectionTime()
           
 int getMaxNewConnectionsAllowed(String network)
           
 float getMinAvailability()
           
 float getMinAvailability(int file_index)
           
 int getNbPeers()
           
 int getNbPeersUnchoked()
           
 int getNbPeersWithUploadBlocked()
           
 int getNbPeersWithUploadQueued()
           
 int getNbRemoteTCPConnections()
           
 int getNbRemoteUDPConnections()
           
 int getNbRemoteUTPConnections()
           
 int getNbSeeds()
           
 int getPartitionID()
           
 byte[] getPeerId()
           
 PeerIdentityDataID getPeerIdentityDataID()
           
 List<PEPeer> getPeers()
           
 List<PEPeer> getPeers(String address)
           
 int getPendingPeerCount()
           
 PeerDescriptor[] getPendingPeers()
           
 PeerDescriptor[] getPendingPeers(String address)
           
 PEPiece getPiece(int pieceNumber)
           
 int getPieceLength(int pieceNumber)
           
 PiecePicker getPiecePicker()
           
 PEPiece[] getPieces()
          Often better to use getPiece(pieceNumber)
 boolean getPreferUDP()
           
 long getRemaining()
           
 PEPeerManagerStats getStats()
           
 long getTimeStarted(boolean mono_time)
           
 long getTimeStartedSeeding(boolean mono_time)
           
 int getTorrentInfoDictSize()
           
 TrackerPeerSource getTrackerPeerSource()
           
 PEPeerTransport getTransportFromAddress(String peer)
          Locate an existing transport via [IP] Address.
 PEPeerTransport getTransportFromIdentity(byte[] peer_id)
          Locate an existing transport via peer id byte identity.
 LimitedRateGroup getUploadLimitedRateGroup()
          Get the limited rate group used for upload limiting.
 int getUploadRateLimitBytesPerSecond()
           
 boolean hasDownloadablePiece()
           
 boolean hasPotentialConnections()
           
 boolean isDestroyed()
           
 boolean isInEndGameMode()
          Are we in end-game mode?
 boolean isMetadataDownload()
           
 boolean isNetworkEnabled(String network)
           
 boolean isPeerSourceEnabled(String peer_source)
           
 boolean isSeeding()
           
 boolean isSuperSeedMode()
           
 boolean isWritten(int piece_number, int offset)
           
 boolean needsMD5CheckOnCompletion(int pieceNumber)
           
 void peerAdded(PEPeer pc)
           
 void peerConnectionClosed(PEPeerTransport peer, boolean connect_failed, boolean network_failed)
          Notify the manager that the given peer connection has been closed.
 void peerDiscovered(String peer_source, String ip_address, int tcp_port, int udp_port, boolean use_crypto)
           
 void peerRemoved(PEPeer pc)
           
 void peerVerifiedAsSelf(PEPeerTransport self)
          Notify that the given peer connection represents our own client.
 void processTrackerResponse(TRTrackerAnnouncerResponse response)
           
 void protocolBytesReceived(PEPeer peer, int length)
          Protocol bytes received.
 void protocolBytesSent(PEPeer peer, int length)
          Protocol bytes sent.
 void removeListener(PEPeerManagerListener l)
           
 void removePeer(PEPeer peer)
           
 void removePeer(PEPeer peer, String reason)
           
 void removeRateLimiter(LimitedRateGroup group, boolean upload)
           
 void requestCanceled(DiskManagerReadRequest item)
           
 boolean requestExists(String peer_ip, int piece_number, int offset, int length)
           
 boolean seedPieceRecheck()
           
 void setData(String key, Object value)
          To store arbitrary objects against this object.
 void setPreferUDP(boolean prefer)
           
 void setStatsReceiver(PEPeerManager.StatsReceiver receiver)
           
 void setSuperSeedMode(boolean on)
           
 void setTorrentInfoDictSize(int size)
           
 void start()
           
 void stopAll()
           
 boolean validatePieceReply(PEPeerTransport originator, int pieceNumber, int offset, DirectByteBuffer data)
           
 void writeBlock(int pieceNumber, int offset, DirectByteBuffer data, Object sender, boolean cancel)
           
 

Method Detail

getDiskManager

DiskManager getDiskManager()

getPiecePicker

PiecePicker getPiecePicker()

getAdapter

PEPeerManagerAdapter getAdapter()

start

void start()

stopAll

void stopAll()

getHash

byte[] getHash()

getDisplayName

String getDisplayName()

getPeerIdentityDataID

PeerIdentityDataID getPeerIdentityDataID()

getPeerId

byte[] getPeerId()

getAvailability

int[] getAvailability()

getAvailability

int getAvailability(int pieceNumber)

getAvgAvail

float getAvgAvail()

getMinAvailability

float getMinAvailability()

getMinAvailability

float getMinAvailability(int file_index)

getAvailWentBadTime

long getAvailWentBadTime()

getBytesUnavailable

long getBytesUnavailable()

hasDownloadablePiece

boolean hasDownloadablePiece()

getBytesQueuedForUpload

int getBytesQueuedForUpload()

getNbPeersWithUploadQueued

int getNbPeersWithUploadQueued()

getNbPeersWithUploadBlocked

int getNbPeersWithUploadBlocked()

getNbPeersUnchoked

int getNbPeersUnchoked()

getPieces

PEPiece[] getPieces()
Often better to use getPiece(pieceNumber)


getPiece

PEPiece getPiece(int pieceNumber)
Returns:
PEPiece or null if piece not currently active

getStats

PEPeerManagerStats getStats()

processTrackerResponse

void processTrackerResponse(TRTrackerAnnouncerResponse response)

getNbPeers

int getNbPeers()

getNbSeeds

int getNbSeeds()

getPieceLength

int getPieceLength(int pieceNumber)

getRemaining

long getRemaining()

getHiddenBytes

long getHiddenBytes()

getETA

long getETA(boolean smoothed)

getElapsedTime

String getElapsedTime()

getTimeStarted

long getTimeStarted(boolean mono_time)

getTimeStartedSeeding

long getTimeStartedSeeding(boolean mono_time)

addListener

void addListener(PEPeerManagerListener l)

removeListener

void removeListener(PEPeerManagerListener l)

addPiece

void addPiece(PEPiece piece,
              int pieceNumber,
              PEPeer for_peer)

needsMD5CheckOnCompletion

boolean needsMD5CheckOnCompletion(int pieceNumber)

isSeeding

boolean isSeeding()

isMetadataDownload

boolean isMetadataDownload()

getTorrentInfoDictSize

int getTorrentInfoDictSize()

setTorrentInfoDictSize

void setTorrentInfoDictSize(int size)

isSuperSeedMode

boolean isSuperSeedMode()

canToggleSuperSeedMode

boolean canToggleSuperSeedMode()

setSuperSeedMode

void setSuperSeedMode(boolean on)

seedPieceRecheck

boolean seedPieceRecheck()

getNbRemoteTCPConnections

int getNbRemoteTCPConnections()

getNbRemoteUDPConnections

int getNbRemoteUDPConnections()

getNbRemoteUTPConnections

int getNbRemoteUTPConnections()

getLastRemoteConnectionTime

long getLastRemoteConnectionTime()

getMaxNewConnectionsAllowed

int getMaxNewConnectionsAllowed(String network)

hasPotentialConnections

boolean hasPotentialConnections()

dataBytesReceived

void dataBytesReceived(PEPeer peer,
                       int l)
Data bytes received.

Parameters:
l -

dataBytesSent

void dataBytesSent(PEPeer peer,
                   int l)
Data bytes sent.

Parameters:
l -

protocolBytesSent

void protocolBytesSent(PEPeer peer,
                       int length)
Protocol bytes sent.

Parameters:
length -

protocolBytesReceived

void protocolBytesReceived(PEPeer peer,
                           int length)
Protocol bytes received.

Parameters:
length -

discarded

void discarded(PEPeer peer,
               int l)

createPeerStats

PEPeerStats createPeerStats(PEPeer owner)

getPeers

List<PEPeer> getPeers()

getPeers

List<PEPeer> getPeers(String address)

getPendingPeerCount

int getPendingPeerCount()

getPendingPeers

PeerDescriptor[] getPendingPeers()

getPendingPeers

PeerDescriptor[] getPendingPeers(String address)

addPeer

void addPeer(PEPeer peer)

addPeer

void addPeer(String ip_address,
             int tcp_port,
             int udp_port,
             boolean use_crypto,
             Map user_data)
Add a new peer, using the default internal PEPeer implementation (like for peers given in announce reply), using the given address and port.

Parameters:
ip_address - of peer to inject
tcp_port - of peer to inject
udp_port - of peer to inject (0 if unknown)
use_crypto - use encrypted transport

peerDiscovered

void peerDiscovered(String peer_source,
                    String ip_address,
                    int tcp_port,
                    int udp_port,
                    boolean use_crypto)

removePeer

void removePeer(PEPeer peer)

removePeer

void removePeer(PEPeer peer,
                String reason)

peerAdded

void peerAdded(PEPeer pc)

peerRemoved

void peerRemoved(PEPeer pc)

createDiskManagerRequest

DiskManagerReadRequest createDiskManagerRequest(int pieceNumber,
                                                int offset,
                                                int length)

requestCanceled

void requestCanceled(DiskManagerReadRequest item)

requestExists

boolean requestExists(String peer_ip,
                      int piece_number,
                      int offset,
                      int length)

validatePieceReply

boolean validatePieceReply(PEPeerTransport originator,
                           int pieceNumber,
                           int offset,
                           DirectByteBuffer data)

writeBlock

void writeBlock(int pieceNumber,
                int offset,
                DirectByteBuffer data,
                Object sender,
                boolean cancel)

isWritten

boolean isWritten(int piece_number,
                  int offset)

isInEndGameMode

boolean isInEndGameMode()
Are we in end-game mode?

Returns:
true if in end game mode, false if not

peerConnectionClosed

void peerConnectionClosed(PEPeerTransport peer,
                          boolean connect_failed,
                          boolean network_failed)
Notify the manager that the given peer connection has been closed.

Parameters:
peer - closed

createPeerExchangeConnection

PeerExchangerItem createPeerExchangeConnection(PEPeerTransport base_peer)
Register a peer connection for peer exchange handling. NOTE: Creation could fail if the peer is not eligible for peer exchange (like if it's remote port is unknown).

Parameters:
base_peer - exchaning with
Returns:
peer database connection item, or null if creation failed

peerVerifiedAsSelf

void peerVerifiedAsSelf(PEPeerTransport self)
Notify that the given peer connection represents our own client.

Parameters:
self - peer

getUploadLimitedRateGroup

LimitedRateGroup getUploadLimitedRateGroup()
Get the limited rate group used for upload limiting.

Returns:
upload limit group

getDownloadLimitedRateGroup

LimitedRateGroup getDownloadLimitedRateGroup()
Get the limited rate group used for download limiting.

Returns:
download limit group

getUploadRateLimitBytesPerSecond

int getUploadRateLimitBytesPerSecond()

getDownloadRateLimitBytesPerSecond

int getDownloadRateLimitBytesPerSecond()

getData

Object getData(String key)
To retreive arbitrary objects against this object.


setData

void setData(String key,
             Object value)
To store arbitrary objects against this object.


getAverageCompletionInThousandNotation

int getAverageCompletionInThousandNotation()
Get the average completion percentage of connected peers.

Returns:
average percent complete in thousand notation

getTransportFromIdentity

PEPeerTransport getTransportFromIdentity(byte[] peer_id)
Locate an existing transport via peer id byte identity.

Parameters:
peer_id - to look for
Returns:
transport with matching identity, or null if no match is found

getTransportFromAddress

PEPeerTransport getTransportFromAddress(String peer)
Locate an existing transport via [IP] Address.

Parameters:
peer - String to look for
Returns:
PEPeerTransport with matching address String, or null if no match is found

getPreferUDP

boolean getPreferUDP()

setPreferUDP

void setPreferUDP(boolean prefer)

addRateLimiter

void addRateLimiter(LimitedRateGroup group,
                    boolean upload)

removeRateLimiter

void removeRateLimiter(LimitedRateGroup group,
                       boolean upload)

getTrackerPeerSource

TrackerPeerSource getTrackerPeerSource()

isPeerSourceEnabled

boolean isPeerSourceEnabled(String peer_source)

isNetworkEnabled

boolean isNetworkEnabled(String network)

getPartitionID

int getPartitionID()

isDestroyed

boolean isDestroyed()

generateEvidence

void generateEvidence(IndentWriter writer)

setStatsReceiver

void setStatsReceiver(PEPeerManager.StatsReceiver receiver)