Package com.biglybt.pifimpl.local.peers
Class PeerManagerImpl
- java.lang.Object
-
- com.biglybt.pifimpl.local.peers.PeerManagerImpl
-
- All Implemented Interfaces:
PeerManager
public class PeerManagerImpl extends java.lang.Object implements PeerManager
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
PeerManagerImpl.CoreListener
protected class
PeerManagerImpl.pieceFacade
-
Field Summary
Fields Modifier and Type Field Description private boolean
destroyed
private DiskManagerPiece[]
dm_pieces
private java.util.Map
foreign_map
private java.util.Map<PeerManagerListener2,PeerManagerImpl.CoreListener>
listener_map2
protected PEPeerManager
manager
private PEPiece[]
pe_pieces
private static java.lang.String
PEPEER_DATA_KEY
private static java.util.concurrent.atomic.AtomicLong
PEPEER_DATA_KEY_AL
private PeerManagerImpl.pieceFacade[]
piece_facades
protected static AEMonitor
pm_map_mon
protected AEMonitor
this_mon
-
Constructor Summary
Constructors Modifier Constructor Description protected
PeerManagerImpl(PEPeerManager _manager)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(PeerManagerListener2 l)
void
addPeer(Peer peer)
void
addPeer(java.lang.String ip_address, int tcp_port)
Add a new peer, using the default internal Peer implementation (like for peers given in announce reply), using the given address and port.void
addPeer(java.lang.String ip_address, int tcp_port, boolean use_crypto)
void
addPeer(java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto)
void
addPeer(java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto, java.util.Map user_data)
protected void
checkIfPrivate()
PeerStats
createPeerStats(Peer peer)
PEPeerManager
getDelegate()
DiskManager
getDiskManager()
Download
getDownload()
int
getDownloadRateLimitBytesPerSecond()
protected int
getPartitionID()
static PeerImpl
getPeerForPEPeer(PEPeer pe_peer)
static PeerManagerImpl
getPeerManager(PEPeerManager _manager)
Peer[]
getPeers()
Peer[]
getPeers(java.lang.String address)
returns the peers for the given addressPeerDescriptor[]
getPendingPeers()
Get the list of currently pending peersPeerDescriptor[]
getPendingPeers(java.lang.String address)
returns the pending connections to the given addressPiece[]
getPieces()
PeerManagerStats
getStats()
long
getTimeSinceConnectionEstablished(Peer peer)
int
getUploadRateLimitBytesPerSecond()
boolean
isSeeding()
boolean
isSuperSeeding()
protected PeerForeignDelegate
lookupForeignPeer(Peer _foreign)
PEPeer
mapForeignPeer(Peer _foreign)
java.util.List
mapForeignPeers(Peer[] _foreigns)
void
peerDiscovered(java.lang.String peer_source, java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto)
protected boolean
pluginPeerSourceEnabled()
void
removeListener(PeerManagerListener2 l)
void
removePeer(Peer peer)
protected void
removePeer(Peer peer, java.lang.String reason)
void
requestCancelled(PeerReadRequest request, Peer sender)
void
requestComplete(PeerReadRequest request, PooledByteBuffer data, Peer sender)
-
-
-
Field Detail
-
PEPEER_DATA_KEY
private static final java.lang.String PEPEER_DATA_KEY
-
PEPEER_DATA_KEY_AL
private static final java.util.concurrent.atomic.AtomicLong PEPEER_DATA_KEY_AL
-
manager
protected PEPeerManager manager
-
pm_map_mon
protected static AEMonitor pm_map_mon
-
foreign_map
private java.util.Map foreign_map
-
listener_map2
private java.util.Map<PeerManagerListener2,PeerManagerImpl.CoreListener> listener_map2
-
this_mon
protected AEMonitor this_mon
-
dm_pieces
private final DiskManagerPiece[] dm_pieces
-
pe_pieces
private final PEPiece[] pe_pieces
-
piece_facades
private PeerManagerImpl.pieceFacade[] piece_facades
-
destroyed
private boolean destroyed
-
-
Constructor Detail
-
PeerManagerImpl
protected PeerManagerImpl(PEPeerManager _manager)
-
-
Method Detail
-
getPeerManager
public static PeerManagerImpl getPeerManager(PEPeerManager _manager)
-
getDelegate
public PEPeerManager getDelegate()
-
getDiskManager
public DiskManager getDiskManager()
- Specified by:
getDiskManager
in interfacePeerManager
-
getStats
public PeerManagerStats getStats()
- Specified by:
getStats
in interfacePeerManager
-
isSeeding
public boolean isSeeding()
- Specified by:
isSeeding
in interfacePeerManager
-
isSuperSeeding
public boolean isSuperSeeding()
- Specified by:
isSuperSeeding
in interfacePeerManager
-
getDownload
public Download getDownload() throws DownloadException
- Specified by:
getDownload
in interfacePeerManager
- Throws:
DownloadException
-
getPieces
public Piece[] getPieces()
- Specified by:
getPieces
in interfacePeerManager
-
createPeerStats
public PeerStats createPeerStats(Peer peer)
- Specified by:
createPeerStats
in interfacePeerManager
-
requestComplete
public void requestComplete(PeerReadRequest request, PooledByteBuffer data, Peer sender)
- Specified by:
requestComplete
in interfacePeerManager
-
requestCancelled
public void requestCancelled(PeerReadRequest request, Peer sender)
- Specified by:
requestCancelled
in interfacePeerManager
-
getPartitionID
protected int getPartitionID()
-
addPeer
public void addPeer(Peer peer)
- Specified by:
addPeer
in interfacePeerManager
-
removePeer
public void removePeer(Peer peer)
- Specified by:
removePeer
in interfacePeerManager
-
removePeer
protected void removePeer(Peer peer, java.lang.String reason)
-
addPeer
public void addPeer(java.lang.String ip_address, int tcp_port)
Description copied from interface:PeerManager
Add a new peer, using the default internal Peer implementation (like for peers given in announce reply), using the given address and port.- Specified by:
addPeer
in interfacePeerManager
- Parameters:
ip_address
- of peer to injecttcp_port
- of peer to inject
-
addPeer
public void addPeer(java.lang.String ip_address, int tcp_port, boolean use_crypto)
- Specified by:
addPeer
in interfacePeerManager
-
addPeer
public void addPeer(java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto)
- Specified by:
addPeer
in interfacePeerManager
-
addPeer
public void addPeer(java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto, java.util.Map user_data)
- Specified by:
addPeer
in interfacePeerManager
-
peerDiscovered
public void peerDiscovered(java.lang.String peer_source, java.lang.String ip_address, int tcp_port, int udp_port, boolean use_crypto)
- Specified by:
peerDiscovered
in interfacePeerManager
-
pluginPeerSourceEnabled
protected boolean pluginPeerSourceEnabled()
-
checkIfPrivate
protected void checkIfPrivate()
-
getPeers
public Peer[] getPeers()
- Specified by:
getPeers
in interfacePeerManager
-
getPeers
public Peer[] getPeers(java.lang.String address)
Description copied from interface:PeerManager
returns the peers for the given address- Specified by:
getPeers
in interfacePeerManager
- Returns:
-
getPendingPeers
public PeerDescriptor[] getPendingPeers()
Description copied from interface:PeerManager
Get the list of currently pending peers- Specified by:
getPendingPeers
in interfacePeerManager
- Returns:
-
getPendingPeers
public PeerDescriptor[] getPendingPeers(java.lang.String address)
Description copied from interface:PeerManager
returns the pending connections to the given address- Specified by:
getPendingPeers
in interfacePeerManager
- Returns:
-
getTimeSinceConnectionEstablished
public long getTimeSinceConnectionEstablished(Peer peer)
-
lookupForeignPeer
protected PeerForeignDelegate lookupForeignPeer(Peer _foreign)
-
mapForeignPeers
public java.util.List mapForeignPeers(Peer[] _foreigns)
-
getUploadRateLimitBytesPerSecond
public int getUploadRateLimitBytesPerSecond()
- Specified by:
getUploadRateLimitBytesPerSecond
in interfacePeerManager
-
getDownloadRateLimitBytesPerSecond
public int getDownloadRateLimitBytesPerSecond()
- Specified by:
getDownloadRateLimitBytesPerSecond
in interfacePeerManager
-
addListener
public void addListener(PeerManagerListener2 l)
- Specified by:
addListener
in interfacePeerManager
-
removeListener
public void removeListener(PeerManagerListener2 l)
- Specified by:
removeListener
in interfacePeerManager
-
-