Class PEPeerControlHashHandlerImpl
- java.lang.Object
-
- com.biglybt.core.peer.impl.control.PEPeerControlHashHandlerImpl
-
- All Implemented Interfaces:
PEPeerControlHashHandler
,TOTorrentFileHashTree.PieceTreeProvider
public class PEPeerControlHashHandlerImpl extends java.lang.Object implements PEPeerControlHashHandler, TOTorrentFileHashTree.PieceTreeProvider
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
PEPeerControlHashHandlerImpl.HashesReceiverImpl
private static class
PEPeerControlHashHandlerImpl.PeerHashRequest
private class
PEPeerControlHashHandlerImpl.PeerStats
private class
PEPeerControlHashHandlerImpl.PieceTreeRequest
-
Nested classes/interfaces inherited from interface com.biglybt.core.peer.impl.PEPeerControlHashHandler
PEPeerControlHashHandler.HashesReceiver
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description PEPeerControlHashHandlerImpl(PEPeerControlImpl _peer_manager, TOTorrent _torrent, DiskManager _disk_manager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
getPieceTree(TOTorrentFileHashTree.PieceTreeReceiver receiver, TOTorrentFileHashTree tree, int piece_offset)
boolean
hashRequest(int piece_number, DiskManagerCheckRequestListener.HashListener listener)
private PEPeerControlHashHandlerImpl.PeerHashRequest
hashRequestSupport(int piece_number, DiskManagerCheckRequestListener.HashListener listener)
void
receivedHashes(PEPeerTransport peer, byte[] root_hash, int base_layer, int index, int length, int proof_layers, byte[][] hashes)
void
receivedHashRequest(PEPeerTransport peer, PEPeerControlHashHandler.HashesReceiver receiver, byte[] root_hash, int base_layer, int index, int length, int proof_layers)
private void
receivedOrRejectedHashes(PEPeerTransport peer, byte[] root_hash, int base_layer, int index, int length, int proof_layers, byte[][] hashes)
void
rejectedHashes(PEPeerTransport peer, byte[] root_hash, int base_layer, int index, int length, int proof_layers)
private void
removeFromPieceRequests(PEPeerControlHashHandlerImpl.PeerHashRequest peer_request)
private PEPeerControlHashHandlerImpl.PeerHashRequest
request(PEPeerTransport peer, int piece_number, DiskManagerCheckRequestListener.HashListener listener_maybe_null)
void
sendingRequest(PEPeerTransport peer, DiskManagerReadRequest request)
void
stop()
void
update()
-
-
-
Field Detail
-
KEY_PEER_STATS
private static final java.lang.Object KEY_PEER_STATS
-
peer_manager
private final PEPeerControlImpl peer_manager
-
torrent
private final TOTorrent torrent
-
disk_manager
private final DiskManager disk_manager
-
piece_length
private final int piece_length
-
file_map
private final ByteArrayHashMap<TOTorrentFileHashTree> file_map
-
last_update
private long last_update
-
active_requests
private java.util.Set<PEPeerControlHashHandlerImpl.PeerHashRequest> active_requests
-
peer_requests
private java.util.Map<PEPeerTransport,java.util.List<PEPeerControlHashHandlerImpl.PeerHashRequest>> peer_requests
-
piece_requests
private PEPeerControlHashHandlerImpl.PeerHashRequest[][] piece_requests
-
piece_hashes_received
private java.util.concurrent.atomic.AtomicInteger piece_hashes_received
-
save_done_on_complete
private boolean save_done_on_complete
-
incomplete_trees
private final java.util.Set<TOTorrentFileHashTree> incomplete_trees
-
incomplete_tree_reqs
private final java.util.Map<TOTorrentFileHashTree,PEPeerControlHashHandlerImpl.PeerHashRequest> incomplete_tree_reqs
-
PIECE_TREE_CACHE_MAX
private final int PIECE_TREE_CACHE_MAX
- See Also:
- Constant Field Values
-
piece_tree_cache
private final java.util.Map<java.lang.Integer,byte[][]> piece_tree_cache
-
last_piece_tree_request
private volatile long last_piece_tree_request
-
piece_tree_requests
private final java.util.Map<java.lang.Integer,PEPeerControlHashHandlerImpl.PieceTreeRequest> piece_tree_requests
-
-
Constructor Detail
-
PEPeerControlHashHandlerImpl
public PEPeerControlHashHandlerImpl(PEPeerControlImpl _peer_manager, TOTorrent _torrent, DiskManager _disk_manager)
-
-
Method Detail
-
stop
public void stop()
- Specified by:
stop
in interfacePEPeerControlHashHandler
-
update
public void update()
- Specified by:
update
in interfacePEPeerControlHashHandler
-
request
private PEPeerControlHashHandlerImpl.PeerHashRequest request(PEPeerTransport peer, int piece_number, DiskManagerCheckRequestListener.HashListener listener_maybe_null)
-
hashRequest
public boolean hashRequest(int piece_number, DiskManagerCheckRequestListener.HashListener listener)
- Specified by:
hashRequest
in interfacePEPeerControlHashHandler
-
hashRequestSupport
private PEPeerControlHashHandlerImpl.PeerHashRequest hashRequestSupport(int piece_number, DiskManagerCheckRequestListener.HashListener listener)
-
sendingRequest
public void sendingRequest(PEPeerTransport peer, DiskManagerReadRequest request)
- Specified by:
sendingRequest
in interfacePEPeerControlHashHandler
-
receivedHashes
public void receivedHashes(PEPeerTransport peer, byte[] root_hash, int base_layer, int index, int length, int proof_layers, byte[][] hashes)
- Specified by:
receivedHashes
in interfacePEPeerControlHashHandler
-
receivedOrRejectedHashes
private void receivedOrRejectedHashes(PEPeerTransport peer, byte[] root_hash, int base_layer, int index, int length, int proof_layers, byte[][] hashes)
-
removeFromPieceRequests
private void removeFromPieceRequests(PEPeerControlHashHandlerImpl.PeerHashRequest peer_request)
-
rejectedHashes
public void rejectedHashes(PEPeerTransport peer, byte[] root_hash, int base_layer, int index, int length, int proof_layers)
- Specified by:
rejectedHashes
in interfacePEPeerControlHashHandler
-
receivedHashRequest
public void receivedHashRequest(PEPeerTransport peer, PEPeerControlHashHandler.HashesReceiver receiver, byte[] root_hash, int base_layer, int index, int length, int proof_layers)
- Specified by:
receivedHashRequest
in interfacePEPeerControlHashHandler
-
getPieceTree
public void getPieceTree(TOTorrentFileHashTree.PieceTreeReceiver receiver, TOTorrentFileHashTree tree, int piece_offset)
- Specified by:
getPieceTree
in interfaceTOTorrentFileHashTree.PieceTreeProvider
-
-