Package com.biglybt.core.peer
Interface PEPeerManager
-
- All Known Subinterfaces:
PEPeerControl
- All Known Implementing Classes:
PeerManager.PeerManagerRegistrationImpl.ProbeControl
,PEPeerControlImpl
public interface PEPeerManager
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
PEPeerManager.StatsReceiver
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addListener(PEPeerManagerListener l)
void
addPeer(PEPeer peer)
void
addPeer(java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto, java.util.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()
java.lang.String
getConnectHealth(boolean verbose)
java.lang.Object
getData(java.lang.String key)
To retreive arbitrary objects against this object.DiskManager
getDiskManager()
java.lang.String
getDisplayName()
LimitedRateGroup
getDownloadLimitedRateGroup()
Get the limited rate group used for download limiting.int
getDownloadRateLimitBytesPerSecond()
int
getEffectiveUploadRateLimitBytesPerSecond()
java.lang.String
getElapsedTime()
long
getETA(boolean smoothed)
byte[]
getHash()
long
getHiddenBytes()
long
getLastRemoteConnectionTime()
int
getMaxCompletionInThousandNotation(boolean never_include_seeds)
Max completion of connected peers (doesn't factor in our completion)int
getMaxNewConnectionsAllowed(java.lang.String network)
float
getMinAvailability()
float
getMinAvailability(int file_index)
PEPeer
getMyPeer()
int
getNbPeers()
int
getNbPeersUnchoked()
int
getNbPeersUnchoking()
int
getNbPeersWithUploadBlocked()
int
getNbPeersWithUploadQueued()
int
getNbPieces()
int
getNbRemoteTCPConnections()
int
getNbRemoteUDPConnections()
int
getNbRemoteUTPConnections()
int
getNbSeeds()
int
getPartitionID()
byte[]
getPeerId()
PeerIdentityDataID
getPeerIdentityDataID()
java.util.List<PEPeer>
getPeers()
java.util.List<PEPeer>
getPeers(java.lang.String address)
int
getPendingPeerCount()
PeerDescriptor[]
getPendingPeers()
PeerDescriptor[]
getPendingPeers(java.lang.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(java.lang.String peer)
Locate an existing transport via [IP] Address.PEPeerTransport
getTransportFromIdentity(byte[] peer_id)
Locate an existing transport via peer id byte identity.int
getUID()
LimitedRateGroup
getUploadLimitedRateGroup()
Get the limited rate group used for upload limiting.int
getUploadRateLimitBytesPerSecond()
boolean
hasDownloadablePiece()
boolean
hasPotentialConnections()
void
informFullyConnected(PEPeer peer)
boolean
isDestroyed()
boolean
isInEndGameMode()
Are we in end-game mode?boolean
isMetadataDownload()
boolean
isNetworkEnabled(java.lang.String network)
boolean
isPeerSourceEnabled(java.lang.String peer_source)
boolean
isSeeding()
boolean
isSuperSeedMode()
boolean
isWritten(int piece_number, int offset)
boolean
needsMD5CheckOnCompletion(int pieceNumber)
void
peerConnectionClosed(PEPeerTransport peer, boolean connect_failed, boolean network_failed)
Notify the manager that the given peer connection has been closed.void
peerDiscovered(java.lang.String peer_source, java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto)
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
removeAllPeers(java.lang.String reason)
void
removeListener(PEPeerManagerListener l)
void
removePeer(PEPeer peer)
void
removePeer(PEPeer peer, java.lang.String reason)
void
removeRateLimiter(LimitedRateGroup group, boolean upload)
void
requestCanceled(DiskManagerReadRequest item)
boolean
requestExists(java.lang.String peer_ip, int piece_number, int offset, int length)
boolean
seedPieceRecheck()
void
setData(java.lang.String key, java.lang.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, java.lang.Object sender, boolean cancel)
-
-
-
Method Detail
-
getUID
int getUID()
-
getDiskManager
DiskManager getDiskManager()
-
getPiecePicker
PiecePicker getPiecePicker()
-
getAdapter
PEPeerManagerAdapter getAdapter()
-
start
void start()
-
stopAll
void stopAll()
-
getHash
byte[] getHash()
-
getDisplayName
java.lang.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()
-
getNbPeersUnchoking
int getNbPeersUnchoking()
-
getNbPieces
int getNbPieces()
-
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
java.lang.String getElapsedTime()
-
getTimeStarted
long getTimeStarted(boolean mono_time)
-
getTimeStartedSeeding
long getTimeStartedSeeding(boolean mono_time)
-
getConnectHealth
java.lang.String getConnectHealth(boolean verbose)
-
addListener
void addListener(PEPeerManagerListener l)
-
removeListener
void removeListener(PEPeerManagerListener l)
-
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(java.lang.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)
-
getMyPeer
PEPeer getMyPeer()
-
getPeers
java.util.List<PEPeer> getPeers()
-
getPeers
java.util.List<PEPeer> getPeers(java.lang.String address)
-
getPendingPeerCount
int getPendingPeerCount()
-
getPendingPeers
PeerDescriptor[] getPendingPeers()
-
getPendingPeers
PeerDescriptor[] getPendingPeers(java.lang.String address)
-
addPeer
void addPeer(PEPeer peer)
-
addPeer
void addPeer(java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto, java.util.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 injecttcp_port
- of peer to injectudp_port
- of peer to inject (0 if unknown)use_crypto
- use encrypted transport
-
peerDiscovered
void peerDiscovered(java.lang.String peer_source, java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto)
-
removePeer
void removePeer(PEPeer peer)
-
removePeer
void removePeer(PEPeer peer, java.lang.String reason)
-
informFullyConnected
void informFullyConnected(PEPeer peer)
-
createDiskManagerRequest
DiskManagerReadRequest createDiskManagerRequest(int pieceNumber, int offset, int length)
-
requestCanceled
void requestCanceled(DiskManagerReadRequest item)
-
requestExists
boolean requestExists(java.lang.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, java.lang.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
-
getEffectiveUploadRateLimitBytesPerSecond
int getEffectiveUploadRateLimitBytesPerSecond()
-
getUploadRateLimitBytesPerSecond
int getUploadRateLimitBytesPerSecond()
-
getDownloadRateLimitBytesPerSecond
int getDownloadRateLimitBytesPerSecond()
-
getData
java.lang.Object getData(java.lang.String key)
To retreive arbitrary objects against this object.
-
setData
void setData(java.lang.String key, java.lang.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
-
getMaxCompletionInThousandNotation
int getMaxCompletionInThousandNotation(boolean never_include_seeds)
Max completion of connected peers (doesn't factor in our completion)- Returns:
-
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(java.lang.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(java.lang.String peer_source)
-
isNetworkEnabled
boolean isNetworkEnabled(java.lang.String network)
-
getPartitionID
int getPartitionID()
-
removeAllPeers
void removeAllPeers(java.lang.String reason)
-
isDestroyed
boolean isDestroyed()
-
generateEvidence
void generateEvidence(IndentWriter writer)
-
setStatsReceiver
void setStatsReceiver(PEPeerManager.StatsReceiver receiver)
-
-