Class PeerManager.PeerManagerRegistrationImpl.ProbeControl
java.lang.Object
com.biglybt.core.peermanager.PeerManager.PeerManagerRegistrationImpl.ProbeControl
- All Implemented Interfaces:
PEPeerControl, PEPeerManager
- Enclosing class:
PeerManager.PeerManagerRegistrationImpl
private class PeerManager.PeerManagerRegistrationImpl.ProbeControl
extends Object
implements PEPeerControl
-
Nested Class Summary
Nested classes/interfaces inherited from interface PEPeerManager
PEPeerManager.StatsReceiver -
Field Summary
FieldsModifier and TypeFieldDescription(package private) PeerIdentityDataIDprivate final LimitedRateGroupprivate final LimitedRateGroupFields inherited from interface PEPeerControl
SNUB_MILLIS, TEST_PERMIT_PEER_CONNECTIONS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvoidAdd a new peer, using the default internal PEPeer implementation (like for peers given in announce reply), using the given address and port.voidaddPeerTransport(PEPeerTransport transport) voidvoidaddRateLimiter(LimitedRateGroup group, boolean upload) voidbadPieceReported(PEPeerTransport originator, int piece_number) booleanvoidcheckSnubbing(PEPeerTransport peer) createDiskManagerRequest(int pieceNumber, int offset, int length) createPeerExchangeConnection(PEPeerTransport base_peer) Register a peer connection for peer exchange handling.createPeerStats(PEPeer owner) voiddataBytesReceived(PEPeer peer, long l) Data bytes received.voiddataBytesSent(PEPeer peer, long l) Data bytes sent.voidvoidbooleandoOptimisticDisconnect(boolean pending_lan_local_peer, boolean force, String network) voidgenerateEvidence(IndentWriter writer) int[]intgetAvailability(int pieceNumber) longintGet the average completion percentage of connected peers.floatintlonggetConnectHealth(boolean verbose) intgetConnectTimeout(int ct_def) To retreive arbitrary objects against this object.Get the limited rate group used for download limiting.intintlonggetETA(boolean smoothed) intbyte[]getHash()longintlongintgetMaxCompletionInThousandNotation(boolean never_include_seeds) Max completion of connected peers (doesn't factor in our completion)int[]intgetMaxNewConnectionsAllowed(String network) floatfloatgetMinAvailability(int file_index) intintintintintintintintintintintintintintbyte[]getPeers()intgetPendingPeers(String address) getPiece(int pieceNumber) intgetPieceLength(int pieceNumber) PEPiece[]Often better to use getPiece(pieceNumber)booleanlongbyte[][]getSecrets(int crypto_level) getStats()byte[]Get torrent hash including any overridesintlonggetTimeStarted(boolean mono_time) longgetTimeStartedSeeding(boolean mono_time) intLocate an existing transport via [IP] Address.getTransportFromIdentity(byte[] peer_id) Locate an existing transport via peer id byte identity.intgetUID()Get the limited rate group used for upload limiting.intintvoidhandleCloseReason(PEPeerTransport peer, boolean reason_out, int reason) booleanbooleanvoidvoidvoidinformFullyConnected(PEPeer peer) booleanbooleanisFastExtensionPermitted(PEPeerTransport originator) booleanisHolePunchOperationOK(PEPeerTransport peer, boolean is_connect) booleanAre we in end-game mode?booleanbooleanisNetworkEnabled(String network) booleanbooleanisPeerSourceEnabled(String peer_source) booleanbooleanisRTA()booleanbooleanbooleanisWritten(int piece_number, int offset) private voidlog()booleanneedsMD5CheckOnCompletion(int pieceNumber) voidvoidpeerConnectionClosed(PEPeerTransport peer, boolean connect_failed, boolean network_failed) Notify the manager that the given peer connection has been closed.voidpeerDiscovered(PEPeerTransport finder, PeerItem pi) voidpeerDiscovered(String peer_source, String ip_address, int tcp_port, int udp_port, boolean use_crypto) voidpeerRemoved(PEPeer pc) voidNotify that the given peer connection represents our own client.voidvoidprotocolBytesReceived(PEPeer peer, long length) Protocol bytes received.voidprotocolBytesSent(PEPeer peer, long length) Protocol bytes sent.voidremoveAllPeers(String reason, int reason_code) voidvoidremovePeer(PEPeer peer) voidremovePeer(PEPeer peer, String reason, int reason_code) voidremoveRateLimiter(LimitedRateGroup group, boolean upload) voidreportBadFastExtensionUse(PEPeerTransport originator) voidrequestAdded(PEPiece piece, PEPeerTransport peer, DiskManagerReadRequest request) voidbooleanrequestExists(String peer_ip, int piece_number, int offset, int length) booleanvoidTo store arbitrary objects against this object.voidvoidsetNbPeersSnubbed(int n) voidsetPreferUDP(boolean prefer) voidsetStatsReceiver(PEPeerManager.StatsReceiver receiver) voidsetSuperSeedMode(boolean on) voidsetTorrentInfoDictSize(int size) voidstart()voidstatsReply(PEPeerTransport originator, Map reply) voidstatsRequest(PEPeerTransport originator, Map request) voidstopAll()voidupdateSuperSeedPiece(PEPeer peer, int pieceNumber) booleanvalidateHintRequest(PEPeerTransport originator, int pieceNumber, int offset, int length) booleanvalidatePieceReply(PEPeerTransport originator, int pieceNumber, int offset, DirectByteBuffer data) booleanvalidateReadRequest(PEPeerTransport originator, int pieceNumber, int offset, int length) voidwriteBlock(int pieceNumber, int offset, DirectByteBuffer data, Object sender, boolean cancel) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface PEPeerManager
removePeer
-
Field Details
-
upload_limited_rate_group
-
download_limited_rate_group
-
data_id
PeerIdentityDataID data_id
-
-
Constructor Details
-
ProbeControl
private ProbeControl()
-
-
Method Details
-
getUID
public int getUID()- Specified by:
getUIDin interfacePEPeerManager
-
getDiskManager
- Specified by:
getDiskManagerin interfacePEPeerManager
-
getPiecePicker
- Specified by:
getPiecePickerin interfacePEPeerManager
-
getAdapter
- Specified by:
getAdapterin interfacePEPeerManager
-
informFullyConnected
- Specified by:
informFullyConnectedin interfacePEPeerManager
-
getConnectHealth
- Specified by:
getConnectHealthin interfacePEPeerManager
-
start
public void start()- Specified by:
startin interfacePEPeerManager
-
stopAll
public void stopAll()- Specified by:
stopAllin interfacePEPeerManager
-
getHash
public byte[] getHash()- Specified by:
getHashin interfacePEPeerManager
-
getDisplayName
- Specified by:
getDisplayNamein interfacePEPeerManager
-
getPeerIdentityDataID
- Specified by:
getPeerIdentityDataIDin interfacePEPeerManager
-
getPeerId
public byte[] getPeerId()- Specified by:
getPeerIdin interfacePEPeerManager
-
getAvailability
public int[] getAvailability()- Specified by:
getAvailabilityin interfacePEPeerManager
-
getAvailability
public int getAvailability(int pieceNumber) - Specified by:
getAvailabilityin interfacePEPeerManager
-
getAvgAvail
public float getAvgAvail()- Specified by:
getAvgAvailin interfacePEPeerManager
-
getMinAvailability
public float getMinAvailability()- Specified by:
getMinAvailabilityin interfacePEPeerManager
-
getMinAvailability
public float getMinAvailability(int file_index) - Specified by:
getMinAvailabilityin interfacePEPeerManager
-
getAvailWentBadTime
public long getAvailWentBadTime()- Specified by:
getAvailWentBadTimein interfacePEPeerManager- Returns:
- 0: hasn't transitioned from good to bad this session OR known to be good; >0: time availability went from good to bad
-
hasDownloadablePiece
public boolean hasDownloadablePiece()- Specified by:
hasDownloadablePiecein interfacePEPeerManager
-
getBytesQueuedForUpload
public int getBytesQueuedForUpload()- Specified by:
getBytesQueuedForUploadin interfacePEPeerManager
-
getNbPeersWithUploadQueued
public int getNbPeersWithUploadQueued()- Specified by:
getNbPeersWithUploadQueuedin interfacePEPeerManager
-
getNbPeersWithUploadBlocked
public int getNbPeersWithUploadBlocked()- Specified by:
getNbPeersWithUploadBlockedin interfacePEPeerManager
-
getNbPeersUnchoked
public int getNbPeersUnchoked()- Specified by:
getNbPeersUnchokedin interfacePEPeerManager
-
getNbPeersUnchoking
public int getNbPeersUnchoking()- Specified by:
getNbPeersUnchokingin interfacePEPeerManager
-
getNbPieces
public int getNbPieces()- Specified by:
getNbPiecesin interfacePEPeerManager
-
getPieces
Description copied from interface:PEPeerManagerOften better to use getPiece(pieceNumber)- Specified by:
getPiecesin interfacePEPeerManager
-
getPiece
- Specified by:
getPiecein interfacePEPeerManager- Returns:
- PEPiece or null if piece not currently active
-
getStats
- Specified by:
getStatsin interfacePEPeerManager
-
processTrackerResponse
- Specified by:
processTrackerResponsein interfacePEPeerManager
-
getNbPeers
public int getNbPeers()- Specified by:
getNbPeersin interfacePEPeerManager
-
getNbSeeds
public int getNbSeeds()- Specified by:
getNbSeedsin interfacePEPeerManager
-
getPieceLength
public int getPieceLength(int pieceNumber) - Specified by:
getPieceLengthin interfacePEPeerManager
-
getRemaining
public long getRemaining()- Specified by:
getRemainingin interfacePEPeerManager
-
getHiddenBytes
public long getHiddenBytes()- Specified by:
getHiddenBytesin interfacePEPeerManager
-
getETA
public long getETA(boolean smoothed) - Specified by:
getETAin interfacePEPeerManager
-
getElapsedTime
- Specified by:
getElapsedTimein interfacePEPeerManager
-
getTimeStarted
public long getTimeStarted(boolean mono_time) - Specified by:
getTimeStartedin interfacePEPeerManager
-
getTimeStartedSeeding
public long getTimeStartedSeeding(boolean mono_time) - Specified by:
getTimeStartedSeedingin interfacePEPeerManager
-
addListener
- Specified by:
addListenerin interfacePEPeerManager
-
removeListener
- Specified by:
removeListenerin interfacePEPeerManager
-
addPiece
- Specified by:
addPiecein interfacePEPeerManager
-
needsMD5CheckOnCompletion
public boolean needsMD5CheckOnCompletion(int pieceNumber) - Specified by:
needsMD5CheckOnCompletionin interfacePEPeerManager
-
isSeeding
public boolean isSeeding()- Specified by:
isSeedingin interfacePEPeerManager
-
isMetadataDownload
public boolean isMetadataDownload()- Specified by:
isMetadataDownloadin interfacePEPeerManager
-
getTorrentInfoDictSize
public int getTorrentInfoDictSize()- Specified by:
getTorrentInfoDictSizein interfacePEPeerManager
-
setTorrentInfoDictSize
public void setTorrentInfoDictSize(int size) - Specified by:
setTorrentInfoDictSizein interfacePEPeerManager
-
isSuperSeedMode
public boolean isSuperSeedMode()- Specified by:
isSuperSeedModein interfacePEPeerManager
-
canToggleSuperSeedMode
public boolean canToggleSuperSeedMode()- Specified by:
canToggleSuperSeedModein interfacePEPeerManager
-
setSuperSeedMode
public void setSuperSeedMode(boolean on) - Specified by:
setSuperSeedModein interfacePEPeerManager
-
seedPieceRecheck
public boolean seedPieceRecheck()- Specified by:
seedPieceRecheckin interfacePEPeerManager
-
getNbRemoteTCPConnections
public int getNbRemoteTCPConnections()- Specified by:
getNbRemoteTCPConnectionsin interfacePEPeerManager
-
getNbRemoteUDPConnections
public int getNbRemoteUDPConnections()- Specified by:
getNbRemoteUDPConnectionsin interfacePEPeerManager
-
getNbRemoteUTPConnections
public int getNbRemoteUTPConnections()- Specified by:
getNbRemoteUTPConnectionsin interfacePEPeerManager
-
getLastRemoteConnectionTime
public long getLastRemoteConnectionTime()- Specified by:
getLastRemoteConnectionTimein interfacePEPeerManager
-
getMaxNewConnectionsAllowed
- Specified by:
getMaxNewConnectionsAllowedin interfacePEPeerManager
-
hasPotentialConnections
public boolean hasPotentialConnections()- Specified by:
hasPotentialConnectionsin interfacePEPeerManager
-
dataBytesReceived
Description copied from interface:PEPeerManagerData bytes received.- Specified by:
dataBytesReceivedin interfacePEPeerManager- Parameters:
l-
-
dataBytesSent
Description copied from interface:PEPeerManagerData bytes sent.- Specified by:
dataBytesSentin interfacePEPeerManager- Parameters:
l-
-
protocolBytesSent
Description copied from interface:PEPeerManagerProtocol bytes sent.- Specified by:
protocolBytesSentin interfacePEPeerManager- Parameters:
length-
-
protocolBytesReceived
Description copied from interface:PEPeerManagerProtocol bytes received.- Specified by:
protocolBytesReceivedin interfacePEPeerManager- Parameters:
length-
-
discarded
- Specified by:
discardedin interfacePEPeerManager
-
createPeerStats
- Specified by:
createPeerStatsin interfacePEPeerManager
-
getMyPeer
- Specified by:
getMyPeerin interfacePEPeerManager
-
getPeers
- Specified by:
getPeersin interfacePEPeerManager
-
getPeers
- Specified by:
getPeersin interfacePEPeerManager
-
getPendingPeerCount
public int getPendingPeerCount()- Specified by:
getPendingPeerCountin interfacePEPeerManager
-
getPendingPeers
- Specified by:
getPendingPeersin interfacePEPeerManager
-
getPendingPeers
- Specified by:
getPendingPeersin interfacePEPeerManager
-
addPeer
- Specified by:
addPeerin interfacePEPeerManager
-
addPeer
public void addPeer(String ip_address, int tcp_port, int udp_port, boolean use_crypto, Map user_data) Description copied from interface:PEPeerManagerAdd a new peer, using the default internal PEPeer implementation (like for peers given in announce reply), using the given address and port.- Specified by:
addPeerin interfacePEPeerManager- 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
public void peerDiscovered(String peer_source, String ip_address, int tcp_port, int udp_port, boolean use_crypto) - Specified by:
peerDiscoveredin interfacePEPeerManager
-
removePeer
-
removePeer
- Specified by:
removePeerin interfacePEPeerManager
-
peerAdded
-
peerRemoved
-
createDiskManagerRequest
- Specified by:
createDiskManagerRequestin interfacePEPeerManager
-
requestCanceled
- Specified by:
requestCanceledin interfacePEPeerManager
-
requestAdded
- Specified by:
requestAddedin interfacePEPeerControl
-
requestExists
- Specified by:
requestExistsin interfacePEPeerManager
-
validatePieceReply
public boolean validatePieceReply(PEPeerTransport originator, int pieceNumber, int offset, DirectByteBuffer data) - Specified by:
validatePieceReplyin interfacePEPeerManager
-
writeBlock
public void writeBlock(int pieceNumber, int offset, DirectByteBuffer data, Object sender, boolean cancel) - Specified by:
writeBlockin interfacePEPeerManager
-
isWritten
public boolean isWritten(int piece_number, int offset) - Specified by:
isWrittenin interfacePEPeerManager
-
isInEndGameMode
public boolean isInEndGameMode()Description copied from interface:PEPeerManagerAre we in end-game mode?- Specified by:
isInEndGameModein interfacePEPeerManager- Returns:
- true if in end game mode, false if not
-
peerConnectionClosed
public void peerConnectionClosed(PEPeerTransport peer, boolean connect_failed, boolean network_failed) Description copied from interface:PEPeerManagerNotify the manager that the given peer connection has been closed.- Specified by:
peerConnectionClosedin interfacePEPeerManager- Parameters:
peer- closed
-
createPeerExchangeConnection
Description copied from interface:PEPeerManagerRegister 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).- Specified by:
createPeerExchangeConnectionin interfacePEPeerManager- Parameters:
base_peer- exchanging with- Returns:
- peer database connection item, or null if creation failed
-
peerVerifiedAsSelf
Description copied from interface:PEPeerManagerNotify that the given peer connection represents our own client.- Specified by:
peerVerifiedAsSelfin interfacePEPeerManager- Parameters:
self- peer
-
getUploadLimitedRateGroup
Description copied from interface:PEPeerManagerGet the limited rate group used for upload limiting.- Specified by:
getUploadLimitedRateGroupin interfacePEPeerManager- Returns:
- upload limit group
-
getDownloadLimitedRateGroup
Description copied from interface:PEPeerManagerGet the limited rate group used for download limiting.- Specified by:
getDownloadLimitedRateGroupin interfacePEPeerManager- Returns:
- download limit group
-
getEffectiveUploadRateLimitBytesPerSecond
public int getEffectiveUploadRateLimitBytesPerSecond()- Specified by:
getEffectiveUploadRateLimitBytesPerSecondin interfacePEPeerManager
-
getUploadRateLimitBytesPerSecond
public int getUploadRateLimitBytesPerSecond()- Specified by:
getUploadRateLimitBytesPerSecondin interfacePEPeerManager
-
getDownloadRateLimitBytesPerSecond
public int getDownloadRateLimitBytesPerSecond()- Specified by:
getDownloadRateLimitBytesPerSecondin interfacePEPeerManager
-
getData
Description copied from interface:PEPeerManagerTo retreive arbitrary objects against this object.- Specified by:
getDatain interfacePEPeerManager
-
setData
Description copied from interface:PEPeerManagerTo store arbitrary objects against this object.- Specified by:
setDatain interfacePEPeerManager
-
getAverageCompletionInThousandNotation
public int getAverageCompletionInThousandNotation()Description copied from interface:PEPeerManagerGet the average completion percentage of connected peers.- Specified by:
getAverageCompletionInThousandNotationin interfacePEPeerManager- Returns:
- average percent complete in thousand notation
-
getMaxCompletionInThousandNotation
public int getMaxCompletionInThousandNotation(boolean never_include_seeds) Description copied from interface:PEPeerManagerMax completion of connected peers (doesn't factor in our completion)- Specified by:
getMaxCompletionInThousandNotationin interfacePEPeerManager- Returns:
-
getTransportFromIdentity
Description copied from interface:PEPeerManagerLocate an existing transport via peer id byte identity.- Specified by:
getTransportFromIdentityin interfacePEPeerManager- Parameters:
peer_id- to look for- Returns:
- transport with matching identity, or null if no match is found
-
getTransportFromAddress
Description copied from interface:PEPeerManagerLocate an existing transport via [IP] Address.- Specified by:
getTransportFromAddressin interfacePEPeerManager- Parameters:
peer- String to look for- Returns:
- PEPeerTransport with matching address String, or null if no match is found
-
getPreferUDP
public boolean getPreferUDP()- Specified by:
getPreferUDPin interfacePEPeerManager
-
setPreferUDP
public void setPreferUDP(boolean prefer) - Specified by:
setPreferUDPin interfacePEPeerManager
-
addRateLimiter
- Specified by:
addRateLimiterin interfacePEPeerManager
-
removeRateLimiter
- Specified by:
removeRateLimiterin interfacePEPeerManager
-
getTrackerPeerSource
- Specified by:
getTrackerPeerSourcein interfacePEPeerManager
-
isPeerSourceEnabled
- Specified by:
isPeerSourceEnabledin interfacePEPeerManager
-
isNetworkEnabled
- Specified by:
isNetworkEnabledin interfacePEPeerManager
-
getPartitionID
public int getPartitionID()- Specified by:
getPartitionIDin interfacePEPeerManager
-
setMaskDownloadCompletion
- Specified by:
setMaskDownloadCompletionin interfacePEPeerManager
-
removeAllPeers
- Specified by:
removeAllPeersin interfacePEPeerManager
-
isDestroyed
public boolean isDestroyed()- Specified by:
isDestroyedin interfacePEPeerManager
-
generateEvidence
- Specified by:
generateEvidencein interfacePEPeerManager
-
setStatsReceiver
- Specified by:
setStatsReceiverin interfacePEPeerManager
-
validateReadRequest
public boolean validateReadRequest(PEPeerTransport originator, int pieceNumber, int offset, int length) - Specified by:
validateReadRequestin interfacePEPeerControl
-
validateHintRequest
public boolean validateHintRequest(PEPeerTransport originator, int pieceNumber, int offset, int length) - Specified by:
validateHintRequestin interfacePEPeerControl
-
havePiece
- Specified by:
havePiecein interfacePEPeerControl
-
updateSuperSeedPiece
- Specified by:
updateSuperSeedPiecein interfacePEPeerControl
-
getTCPListeningPortNumber
public int getTCPListeningPortNumber()- Specified by:
getTCPListeningPortNumberin interfacePEPeerControl
-
getTargetHash
public byte[] getTargetHash()Description copied from interface:PEPeerControlGet torrent hash including any overrides- Specified by:
getTargetHashin interfacePEPeerControl- Returns:
-
isPrivateTorrent
public boolean isPrivateTorrent()- Specified by:
isPrivateTorrentin interfacePEPeerControl
-
getExtendedMessagingMode
public int getExtendedMessagingMode()- Specified by:
getExtendedMessagingModein interfacePEPeerControl
-
isPeerExchangeEnabled
public boolean isPeerExchangeEnabled()- Specified by:
isPeerExchangeEnabledin interfacePEPeerControl
-
getSecrets
public byte[][] getSecrets(int crypto_level) - Specified by:
getSecretsin interfacePEPeerControl
-
getUploadPriority
public int getUploadPriority()- Specified by:
getUploadPriorityin interfacePEPeerControl
-
getHiddenPiece
public int getHiddenPiece()- Specified by:
getHiddenPiecein interfacePEPeerManager
-
addPeerTransport
- Specified by:
addPeerTransportin interfacePEPeerControl
-
getConnectTimeout
public int getConnectTimeout(int ct_def) - Specified by:
getConnectTimeoutin interfacePEPeerControl
-
getMaxConnections
public int[] getMaxConnections()- Specified by:
getMaxConnectionsin interfacePEPeerControl
-
doOptimisticDisconnect
public boolean doOptimisticDisconnect(boolean pending_lan_local_peer, boolean force, String network) - Specified by:
doOptimisticDisconnectin interfacePEPeerControl
-
getNbActivePieces
public int getNbActivePieces()- Specified by:
getNbActivePiecesin interfacePEPeerControl
-
getNbPeersStalledPendingLoad
public int getNbPeersStalledPendingLoad()- Specified by:
getNbPeersStalledPendingLoadin interfacePEPeerControl
-
incNbPeersSnubbed
public void incNbPeersSnubbed()- Specified by:
incNbPeersSnubbedin interfacePEPeerControl
-
decNbPeersSnubbed
public void decNbPeersSnubbed()- Specified by:
decNbPeersSnubbedin interfacePEPeerControl
-
setNbPeersSnubbed
public void setNbPeersSnubbed(int n) - Specified by:
setNbPeersSnubbedin interfacePEPeerControl
-
getNbPeersSnubbed
public int getNbPeersSnubbed()- Specified by:
getNbPeersSnubbedin interfacePEPeerControl
-
checkSnubbing
- Specified by:
checkSnubbingin interfacePEPeerControl
-
badPieceReported
- Specified by:
badPieceReportedin interfacePEPeerControl
-
isFastExtensionPermitted
- Specified by:
isFastExtensionPermittedin interfacePEPeerControl
-
reportBadFastExtensionUse
- Specified by:
reportBadFastExtensionUsein interfacePEPeerControl
-
statsRequest
- Specified by:
statsRequestin interfacePEPeerControl
-
statsReply
- Specified by:
statsReplyin interfacePEPeerControl
-
isRTA
public boolean isRTA()- Specified by:
isRTAin interfacePEPeerControl
-
peerDiscovered
- Specified by:
peerDiscoveredin interfacePEPeerControl
-
getHashHandler
- Specified by:
getHashHandlerin interfacePEPeerControl
-
isHolePunchOperationOK
- Specified by:
isHolePunchOperationOKin interfacePEPeerControl
-
handleCloseReason
- Specified by:
handleCloseReasonin interfacePEPeerControl
-
log
private void log()
-