|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.gudy.azureus2.pluginsimpl.local.peers.PeerForeignDelegate
public class PeerForeignDelegate
| Field Summary | |
|---|---|
protected int |
_lastPiece
|
protected AEMonitor |
this_mon
|
| Fields inherited from interface org.gudy.azureus2.core3.peer.impl.PEPeerTransport |
|---|
CONNECTION_CONNECTING, CONNECTION_FULLY_ESTABLISHED, CONNECTION_PENDING, CONNECTION_WAITING_FOR_HANDSHAKE |
| Fields inherited from interface org.gudy.azureus2.core3.peer.PEPeer |
|---|
CLOSING, CONNECTING, DISCONNECTED, HANDSHAKING, MESSAGING_AZMP, MESSAGING_BT_ONLY, MESSAGING_EXTERN, MESSAGING_LTEP, StateNames, TRANSFERING |
| Fields inherited from interface com.aelitis.azureus.core.tag.Taggable |
|---|
TT_DOWNLOAD, TT_PEER |
| Constructor Summary | |
|---|---|
protected |
PeerForeignDelegate(PeerManagerImpl _manager,
Peer _foreign)
|
| Method Summary | |
|---|---|
void |
addListener(PEPeerListener l)
Add peer listener. |
void |
addRateLimiter(LimitedRateGroup limiter,
boolean upload)
|
void |
addReservedPieceNumber(int piece_number)
adds the reserved piece for piece picking by this peer |
void |
checkInterested()
Nothing to do if called |
void |
clearAvailabilityAdded()
Nothing to do if called |
void |
clearRequestHint()
|
void |
closeConnection(java.lang.String reason)
Close the peer connection |
protected void |
dataReceived()
|
void |
doKeepAliveCheck()
Check if we need to send a keep-alive message. |
void |
doPerformanceTuningCheck()
Perform checks related to performance optimizations, i.e. |
boolean |
doTimeoutChecks()
Check for possible connection timeouts. |
boolean |
equals(java.lang.Object other)
|
void |
generateEvidence(IndentWriter writer)
|
java.net.InetAddress |
getAlternativeIPv6()
|
BitFlags |
getAvailable()
|
long |
getBytesRemaining()
|
java.lang.String |
getClient()
|
java.lang.String |
getClientNameFromExtensionHandshake()
|
java.lang.String |
getClientNameFromPeerID()
|
int |
getConnectionState()
Get the specific peer connection state. |
int |
getConsecutiveNoRequestCount()
|
PEPeerControl |
getControl()
|
java.lang.Object |
getData(java.lang.String key)
To retreive arbitrary objects against a peer. |
int |
getDownloadRateLimitBytesPerSecond()
|
java.lang.String |
getEncryption()
Returns name of encryption used by the peer |
java.util.List |
getExpiredRequests()
|
byte[] |
getHandshakeReservedBytes()
|
byte[] |
getId()
|
int |
getIncomingRequestCount()
|
int[] |
getIncomingRequestedPieceNumbers()
get a list of piece numbers the peer has requested |
java.lang.String |
getIp()
|
java.lang.String |
getIPHostName()
Gets the host name for the IP, if possible, IP as string otherwise |
long |
getLastMessageSentTime()
|
int |
getLastPiece()
|
long |
getLatency()
|
PEPeerManager |
getManager()
|
int |
getMaxNbRequests()
peer-specific request max. |
int |
getMessagingMode()
|
int |
getNbRequests()
|
java.lang.String |
getNetwork()
|
int |
getOutboundDataQueueSize()
amount of data queued for delivery to peer |
int |
getOutgoingRequestCount()
|
int[] |
getOutgoingRequestedPieceNumbers()
get a list of piece numbers the we have requested from peer |
PeerItem |
getPeerItemIdentity()
Get the peer's address + port identification item. |
java.lang.String |
getPeerSource()
|
int |
getPeerState()
|
int |
getPercentDoneInThousandNotation()
Get the peer's torrent completion percentage in thousand-notation, i.e. |
int |
getPercentDoneOfCurrentIncomingRequest()
|
int |
getPercentDoneOfCurrentOutgoingRequest()
|
Connection |
getPluginConnection()
Get the connection that backs this peer. |
int |
getPort()
Get the peer's local TCP connection port. |
int[] |
getPriorityOffsets()
Any priority offsets this peer has, or null if none |
java.lang.String |
getProtocol()
|
java.lang.String |
getProtocolQualifier()
|
LimitedRateGroup[] |
getRateLimiters(boolean upload)
|
int[] |
getRequestHint()
Get current request hint for a given piece for this peer. |
int |
getRequestIndex(DiskManagerReadRequest request)
Returns the index of this request in the peer's queue or -1 if not found |
int[] |
getReservedPieceNumbers()
Get the reserved pieces for piece picking by this peer |
long |
getSnubbedTime()
|
PEPeerStats |
getStats()
|
Message[] |
getSupportedMessages()
Get the list of messages that this peer and us both understand. |
java.lang.String |
getTaggableID()
|
TaggableResolver |
getTaggableResolver()
|
java.lang.Object |
getTaggableTransientProperty(java.lang.String key)
|
int |
getTaggableType()
|
int |
getTCPListenPort()
Get the TCP port this peer is listening for incoming connections on. |
long |
getTimeSinceConnectionEstablished()
Get the time since this connection was first established. |
long |
getTimeSinceGoodDataReceived()
Get the time since the most-recent data that was actually written to disk was received. |
long |
getTimeSinceLastDataMessageReceived()
Get the time since the last (most-recent) data (payload) message was received. |
long |
getTimeSinceLastDataMessageSent()
Get the time since the last (most-recent) data (payload) message was sent. |
int |
getUDPListenPort()
Get the UDP port this peer is listening for incoming connections on. |
int |
getUDPNonDataListenPort()
Get the UDP port this peer is listening on for non-data connections |
long |
getUnchokedForMillis()
|
int |
getUniqueAnnounce()
|
int |
getUploadHint()
|
int |
getUploadRateLimitBytesPerSecond()
|
java.lang.Object |
getUserData(java.lang.Object key)
To retreive arbitrary objects against a peer. |
int |
hashCode()
|
boolean |
hasReceivedBitField()
|
boolean |
isAvailabilityAdded()
Apaprently nothing significant to do if called |
boolean |
isChokedByMe()
Am I choking the peer. |
boolean |
isChokingMe()
Is the peer choking me. |
boolean |
isClosed()
|
boolean |
isDownloadDisabled()
|
boolean |
isDownloadPossible()
checks several factors within the object so the caller wouldn't need to for convienience and speed. |
boolean |
isIncoming()
|
boolean |
isInterested()
Is the peer Interested in me. |
boolean |
isInteresting()
Am I Interested in the peer. |
boolean |
isLANLocal()
Is the connection within the local LAN network. |
boolean |
isOptimisticUnchoke()
|
boolean |
isPieceAvailable(int pieceNumber)
|
boolean |
isPriorityConnection()
|
boolean |
isRelativeSeed()
|
boolean |
isSafeForReconnect()
This method is called to check if it is safe to reconnect to a peer, i.e. |
boolean |
isSeed()
|
boolean |
isSnubbed()
|
boolean |
isStalledPendingLoad()
is peer waiting for a disk read with no network writes queued |
boolean |
isTCP()
|
boolean |
isUnchokeOverride()
|
boolean |
isUploadDisabled()
|
PEPeerTransport |
reconnect(boolean tryUDP,
boolean tryIPv6)
Attempts to reconnect to the same peer |
void |
removeListener(PEPeerListener l)
Remove peer listener. |
void |
removeRateLimiter(LimitedRateGroup limiter,
boolean upload)
|
void |
removeReservedPieceNumber(int piece_number)
|
DiskManagerReadRequest |
request(int pieceNumber,
int pieceOffset,
int pieceLength,
boolean return_duplicates)
|
void |
requestAllocationComplete()
|
boolean |
requestAllocationStarts(int[] base_priorities)
Two methods that allow a peer to aggregate the individual requests generated during an allocation cycle if so desired |
void |
sendBadPiece(int piece_number)
|
void |
sendCancel(DiskManagerReadRequest request)
|
void |
sendChoke()
Should never be called |
void |
sendHave(int piece)
Nothing to do if called |
void |
sendRejectRequest(DiskManagerReadRequest request)
|
boolean |
sendRequestHint(int piece_number,
int offset,
int length,
int life)
Send a request hint to the peer. |
void |
sendStatsReply(java.util.Map reply)
|
void |
sendStatsRequest(java.util.Map request)
|
void |
sendUnChoke()
Should never be called |
void |
setConsecutiveNoRequestCount(int num)
|
void |
setData(java.lang.String key,
java.lang.Object value)
To store arbitrary objects against a peer. |
void |
setDownloadDisabled(java.lang.Object key,
boolean disabled)
|
void |
setDownloadRateLimitBytesPerSecond(int bytes)
|
void |
setHaveAggregationEnabled(boolean enabled)
|
void |
setLastPiece(int pieceNumber)
|
void |
setOptimisticUnchoke(boolean is_optimistic)
|
void |
setPriorityConnection(boolean is_priority)
|
void |
setSnubbed(boolean b)
|
void |
setSuspendedLazyBitFieldEnabled(boolean enable)
Enable suspended lazy bitfield for this peer - we will appear incomplete until this is disabled, at which point (well, fairly soon after) the bitfield will be completed |
void |
setTaggableTransientProperty(java.lang.String key,
java.lang.Object value)
|
void |
setUniqueAnnounce(int uniquePieceNumber)
|
void |
setUploadDisabled(java.lang.Object key,
boolean disabled)
|
void |
setUploadHint(int timeToSpread)
|
void |
setUploadRateLimitBytesPerSecond(int bytes)
|
void |
setUserData(java.lang.Object key,
java.lang.Object value)
To store arbitrary objects against a peer. |
void |
start()
Start message processing for the peer |
protected void |
stop()
|
boolean |
supportsMessaging()
Whether or not this peer supports the advanced messaging API. |
boolean |
transferAvailable()
|
void |
updateAutoUploadPriority(java.lang.Object key,
boolean inc)
|
void |
updatePeerExchange()
Do any peer exchange processing/updating. |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected volatile int _lastPiece
protected AEMonitor this_mon
| Constructor Detail |
|---|
protected PeerForeignDelegate(PeerManagerImpl _manager,
Peer _foreign)
| Method Detail |
|---|
public void start()
PEPeerTransport
start in interface PEPeerTransportprotected void stop()
public void sendChoke()
sendChoke in interface PEPeerTransportsendChoke in interface PEPeerpublic void sendHave(int piece)
sendHave in interface PEPeerTransportpublic void sendUnChoke()
sendUnChoke in interface PEPeerTransportsendUnChoke in interface PEPeerpublic java.net.InetAddress getAlternativeIPv6()
getAlternativeIPv6 in interface PEPeerpublic boolean transferAvailable()
transferAvailable in interface PEPeerTransporttransferAvailable in interface PEPeerpublic boolean isDownloadPossible()
PEPeer
isDownloadPossible in interface PEPeerpublic void sendCancel(DiskManagerReadRequest request)
sendCancel in interface PEPeerTransport
public DiskManagerReadRequest request(int pieceNumber,
int pieceOffset,
int pieceLength,
boolean return_duplicates)
request in interface PEPeerTransportpieceNumber - pieceOffset - pieceLength - return_duplicates - - if true and request already exists it will be returned, if false -> null
public int getRequestIndex(DiskManagerReadRequest request)
PEPeerTransport
getRequestIndex in interface PEPeerTransportprotected void dataReceived()
public void closeConnection(java.lang.String reason)
PEPeerTransport
closeConnection in interface PEPeerTransportreason - for closurepublic boolean isClosed()
isClosed in interface PEPeerpublic java.util.List getExpiredRequests()
getExpiredRequests in interface PEPeerTransportpublic long getLastMessageSentTime()
getLastMessageSentTime in interface PEPeerTransportpublic int getMaxNbRequests()
PEPeerTransport
getMaxNbRequests in interface PEPeerTransportpublic int getNbRequests()
getNbRequests in interface PEPeerTransportpublic int[] getPriorityOffsets()
PEPeerTransport
getPriorityOffsets in interface PEPeerTransportpublic boolean requestAllocationStarts(int[] base_priorities)
PEPeerTransport
requestAllocationStarts in interface PEPeerTransportpublic void requestAllocationComplete()
requestAllocationComplete in interface PEPeerTransportpublic PEPeerControl getControl()
getControl in interface PEPeerTransportpublic void updatePeerExchange()
PEPeerTransport
updatePeerExchange in interface PEPeerTransportpublic PeerItem getPeerItemIdentity()
PEPeerTransport
getPeerItemIdentity in interface PEPeerTransportpublic int getConnectionState()
PEPeerTransport
getConnectionState in interface PEPeerTransportpublic void doKeepAliveCheck()
PEPeerTransport
doKeepAliveCheck in interface PEPeerTransportpublic boolean doTimeoutChecks()
PEPeerTransport
doTimeoutChecks in interface PEPeerTransportpublic void doPerformanceTuningCheck()
PEPeerTransport
doPerformanceTuningCheck in interface PEPeerTransportpublic void setSuspendedLazyBitFieldEnabled(boolean enable)
PEPeer
setSuspendedLazyBitFieldEnabled in interface PEPeerpublic long getTimeSinceConnectionEstablished()
PEPeer
getTimeSinceConnectionEstablished in interface PEPeerpublic long getTimeSinceLastDataMessageReceived()
PEPeerTransport
getTimeSinceLastDataMessageReceived in interface PEPeerTransportpublic long getTimeSinceGoodDataReceived()
PEPeerTransport
getTimeSinceGoodDataReceived in interface PEPeerTransportpublic long getTimeSinceLastDataMessageSent()
PEPeerTransport
getTimeSinceLastDataMessageSent in interface PEPeerTransportpublic long getUnchokedForMillis()
getUnchokedForMillis in interface PEPeerTransportpublic long getLatency()
getLatency in interface PEPeerTransportpublic int getConsecutiveNoRequestCount()
getConsecutiveNoRequestCount in interface PEPeerpublic void setConsecutiveNoRequestCount(int num)
setConsecutiveNoRequestCount in interface PEPeerpublic PEPeerManager getManager()
getManager in interface PEPeerpublic java.lang.String getPeerSource()
getPeerSource in interface PEPeerpublic int getPeerState()
getPeerState in interface PEPeerpublic byte[] getId()
getId in interface PEPeerpublic java.lang.String getIp()
getIp in interface PEPeerpublic java.lang.String getIPHostName()
PEPeer
getIPHostName in interface PEPeerpublic int getPort()
PEPeer
getPort in interface PEPeerpublic int getTCPListenPort()
PEPeer
getTCPListenPort in interface PEPeerpublic int getUDPListenPort()
PEPeer
getUDPListenPort in interface PEPeerpublic int getUDPNonDataListenPort()
PEPeer
getUDPNonDataListenPort in interface PEPeerpublic BitFlags getAvailable()
getAvailable in interface PEPeerpublic boolean hasReceivedBitField()
hasReceivedBitField in interface PEPeerpublic boolean isPieceAvailable(int pieceNumber)
isPieceAvailable in interface PEPeerpieceNumber - int
public void setSnubbed(boolean b)
setSnubbed in interface PEPeerpublic boolean isChokingMe()
PEPeer
isChokingMe in interface PEPeerpublic boolean isChokedByMe()
PEPeer
isChokedByMe in interface PEPeerpublic boolean isUnchokeOverride()
isUnchokeOverride in interface PEPeerpublic boolean isInteresting()
PEPeer
isInteresting in interface PEPeerpublic boolean isInterested()
PEPeer
isInterested in interface PEPeerpublic boolean isSeed()
isSeed in interface PEPeerpublic boolean isRelativeSeed()
isRelativeSeed in interface PEPeerpublic boolean isSnubbed()
isSnubbed in interface PEPeerpublic long getSnubbedTime()
getSnubbedTime in interface PEPeerpublic boolean isLANLocal()
PEPeerTransport
isLANLocal in interface PEPeerTransportisLANLocal in interface PEPeer
public boolean sendRequestHint(int piece_number,
int offset,
int length,
int life)
PEPeer
sendRequestHint in interface PEPeerpublic int[] getRequestHint()
PEPeer
getRequestHint in interface PEPeerpublic void clearRequestHint()
clearRequestHint in interface PEPeerpublic void sendRejectRequest(DiskManagerReadRequest request)
sendRejectRequest in interface PEPeerpublic void sendBadPiece(int piece_number)
sendBadPiece in interface PEPeerTransportpublic void sendStatsRequest(java.util.Map request)
sendStatsRequest in interface PEPeerTransportsendStatsRequest in interface PEPeerpublic void sendStatsReply(java.util.Map reply)
sendStatsReply in interface PEPeerTransportpublic boolean isTCP()
isTCP in interface PEPeerTransportpublic java.lang.String getNetwork()
getNetwork in interface PEPeerTransportpublic PEPeerStats getStats()
getStats in interface PEPeerpublic boolean isIncoming()
isIncoming in interface PEPeerpublic int getPercentDoneInThousandNotation()
PEPeer
getPercentDoneInThousandNotation in interface PEPeerpublic long getBytesRemaining()
getBytesRemaining in interface PEPeerpublic java.lang.String getClient()
getClient in interface PEPeerpublic byte[] getHandshakeReservedBytes()
getHandshakeReservedBytes in interface PEPeerpublic boolean isOptimisticUnchoke()
isOptimisticUnchoke in interface PEPeerpublic void setOptimisticUnchoke(boolean is_optimistic)
setOptimisticUnchoke in interface PEPeerpublic int getUniqueAnnounce()
getUniqueAnnounce in interface PEPeerpublic int getUploadHint()
getUploadHint in interface PEPeerpublic void setUniqueAnnounce(int uniquePieceNumber)
setUniqueAnnounce in interface PEPeerpublic void setUploadHint(int timeToSpread)
setUploadHint in interface PEPeerpublic boolean isStalledPendingLoad()
PEPeerTransport
isStalledPendingLoad in interface PEPeerTransportpublic void addListener(PEPeerListener l)
PEPeer
addListener in interface PEPeerpublic void removeListener(PEPeerListener l)
PEPeer
removeListener in interface PEPeerpublic Connection getPluginConnection()
PEPeer
getPluginConnection in interface PEPeerpublic int getPercentDoneOfCurrentIncomingRequest()
getPercentDoneOfCurrentIncomingRequest in interface PEPeerpublic int getPercentDoneOfCurrentOutgoingRequest()
getPercentDoneOfCurrentOutgoingRequest in interface PEPeerpublic boolean supportsMessaging()
PEPeer
supportsMessaging in interface PEPeerpublic int getMessagingMode()
getMessagingMode in interface PEPeerpublic java.lang.String getEncryption()
PEPeer
getEncryption in interface PEPeerpublic java.lang.String getProtocol()
getProtocol in interface PEPeerpublic java.lang.String getProtocolQualifier()
getProtocolQualifier in interface PEPeerpublic Message[] getSupportedMessages()
PEPeer
getSupportedMessages in interface PEPeerpublic java.lang.Object getData(java.lang.String key)
PEPeer
getData in interface PEPeer
public void setData(java.lang.String key,
java.lang.Object value)
PEPeer
setData in interface PEPeerpublic java.lang.Object getUserData(java.lang.Object key)
getUserData in interface PEPeer
public void setUserData(java.lang.Object key,
java.lang.Object value)
setUserData in interface PEPeerpublic boolean equals(java.lang.Object other)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic int[] getReservedPieceNumbers()
PEPeer
getReservedPieceNumbers in interface PEPeerpublic void addReservedPieceNumber(int piece_number)
PEPeer
addReservedPieceNumber in interface PEPeerpublic void removeReservedPieceNumber(int piece_number)
removeReservedPieceNumber in interface PEPeerpublic int[] getIncomingRequestedPieceNumbers()
PEPeer
getIncomingRequestedPieceNumbers in interface PEPeerpublic int getIncomingRequestCount()
getIncomingRequestCount in interface PEPeerpublic int getOutgoingRequestCount()
getOutgoingRequestCount in interface PEPeerpublic int[] getOutgoingRequestedPieceNumbers()
PEPeer
getOutgoingRequestedPieceNumbers in interface PEPeerpublic int getOutboundDataQueueSize()
PEPeer
getOutboundDataQueueSize in interface PEPeerpublic int getLastPiece()
getLastPiece in interface PEPeerpublic void setLastPiece(int pieceNumber)
setLastPiece in interface PEPeerpublic void checkInterested()
checkInterested in interface PEPeerTransportpublic boolean isAvailabilityAdded()
public void clearAvailabilityAdded()
public PEPeerTransport reconnect(boolean tryUDP,
boolean tryIPv6)
PEPeerTransport
reconnect in interface PEPeerTransporttryUDP - try to initate a UDP connection if true, just reestablish the previous state otherwisetryIPv6 - TODO
public boolean isSafeForReconnect()
PEPeerTransport
isSafeForReconnect in interface PEPeerTransportpublic void setUploadRateLimitBytesPerSecond(int bytes)
setUploadRateLimitBytesPerSecond in interface PEPeerpublic void setDownloadRateLimitBytesPerSecond(int bytes)
setDownloadRateLimitBytesPerSecond in interface PEPeerpublic int getUploadRateLimitBytesPerSecond()
getUploadRateLimitBytesPerSecond in interface PEPeerpublic int getDownloadRateLimitBytesPerSecond()
getDownloadRateLimitBytesPerSecond in interface PEPeer
public void updateAutoUploadPriority(java.lang.Object key,
boolean inc)
updateAutoUploadPriority in interface PEPeer
public void addRateLimiter(LimitedRateGroup limiter,
boolean upload)
addRateLimiter in interface PEPeerpublic LimitedRateGroup[] getRateLimiters(boolean upload)
getRateLimiters in interface PEPeer
public void removeRateLimiter(LimitedRateGroup limiter,
boolean upload)
removeRateLimiter in interface PEPeer
public void setUploadDisabled(java.lang.Object key,
boolean disabled)
setUploadDisabled in interface PEPeer
public void setDownloadDisabled(java.lang.Object key,
boolean disabled)
setDownloadDisabled in interface PEPeerpublic boolean isUploadDisabled()
isUploadDisabled in interface PEPeerpublic boolean isDownloadDisabled()
isDownloadDisabled in interface PEPeerpublic void setHaveAggregationEnabled(boolean enabled)
setHaveAggregationEnabled in interface PEPeerpublic void setPriorityConnection(boolean is_priority)
setPriorityConnection in interface PEPeerpublic boolean isPriorityConnection()
isPriorityConnection in interface PEPeerpublic void generateEvidence(IndentWriter writer)
generateEvidence in interface PEPeerTransportpublic java.lang.String getClientNameFromExtensionHandshake()
getClientNameFromExtensionHandshake in interface PEPeerpublic java.lang.String getClientNameFromPeerID()
getClientNameFromPeerID in interface PEPeerpublic int getTaggableType()
public java.lang.String getTaggableID()
public TaggableResolver getTaggableResolver()
public java.lang.Object getTaggableTransientProperty(java.lang.String key)
public void setTaggableTransientProperty(java.lang.String key,
java.lang.Object value)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||