Package com.biglybt.core.torrent.impl
Class TOTorrentFileHashTreeImpl
- java.lang.Object
-
- com.biglybt.core.torrent.impl.TOTorrentFileHashTreeImpl
-
- All Implemented Interfaces:
TOTorrentFileHashTree
public class TOTorrentFileHashTreeImpl extends java.lang.Object implements TOTorrentFileHashTree
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
TOTorrentFileHashTreeImpl.HashRequestImpl
-
Nested classes/interfaces inherited from interface com.biglybt.core.torrent.TOTorrentFileHashTree
TOTorrentFileHashTree.HashesReceiver, TOTorrentFileHashTree.HashRequest, TOTorrentFileHashTree.PieceTreeProvider, TOTorrentFileHashTree.PieceTreeReceiver
-
-
Field Summary
Fields Modifier and Type Field Description private static int
BLOCK_SIZE
private static int
DIGEST_LENGTH
private TOTorrentFileImpl
file
private static java.util.Map<java.lang.Integer,byte[]>
pad_hash_cache
private int
piece_layer_index
private static boolean
TEST_LEAF_REQUESTS
private byte[][]
tree
private static int[]
tree_hash_widths
private java.lang.Object
tree_lock
-
Constructor Summary
Constructors Modifier Constructor Description protected
TOTorrentFileHashTreeImpl(TOTorrentFileImpl _file, byte[] _root_hash)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.List<byte[]>
addPieceLayer(byte[] piece_layer)
protected java.util.Map<java.lang.String,java.lang.Object>
exportState()
TOTorrentFile
getFile()
protected byte[]
getPieceLayer()
byte[]
getRootHash()
protected java.util.List<byte[]>
importState(java.util.Map<java.lang.String,java.lang.Object> map)
boolean
isPieceLayerComplete()
void
receivedHashes(byte[] root_hash, int base_layer, int index, int length, int proof_layers, byte[][] hashes)
boolean
requestHashes(TOTorrentFileHashTree.PieceTreeProvider piece_tree_provider, TOTorrentFileHashTree.HashesReceiver hashes_receiver, byte[] root_hash, int base_layer, int index, int length, int proof_layers)
private boolean
requestHashesSupport(TOTorrentFileHashTree.PieceTreeProvider piece_tree_provider, TOTorrentFileHashTree.HashesReceiver hashes_receiver, byte[] root_hash, int base_layer, int index, int length, int proof_layers, byte[][] loaded_piece_tree)
TOTorrentFileHashTree.HashRequest
requestPieceHash(int piece_number, BitFlags available)
-
-
-
Field Detail
-
TEST_LEAF_REQUESTS
private static final boolean TEST_LEAF_REQUESTS
- See Also:
- Constant Field Values
-
DIGEST_LENGTH
private static final int DIGEST_LENGTH
- See Also:
- Constant Field Values
-
BLOCK_SIZE
private static final int BLOCK_SIZE
- See Also:
- Constant Field Values
-
pad_hash_cache
private static final java.util.Map<java.lang.Integer,byte[]> pad_hash_cache
-
tree_hash_widths
private static final int[] tree_hash_widths
-
file
private final TOTorrentFileImpl file
-
tree_lock
private java.lang.Object tree_lock
-
tree
private byte[][] tree
-
piece_layer_index
private final int piece_layer_index
-
-
Constructor Detail
-
TOTorrentFileHashTreeImpl
protected TOTorrentFileHashTreeImpl(TOTorrentFileImpl _file, byte[] _root_hash)
-
-
Method Detail
-
getFile
public TOTorrentFile getFile()
- Specified by:
getFile
in interfaceTOTorrentFileHashTree
-
getRootHash
public byte[] getRootHash()
- Specified by:
getRootHash
in interfaceTOTorrentFileHashTree
-
exportState
protected java.util.Map<java.lang.String,java.lang.Object> exportState()
-
importState
protected java.util.List<byte[]> importState(java.util.Map<java.lang.String,java.lang.Object> map)
-
isPieceLayerComplete
public boolean isPieceLayerComplete()
- Specified by:
isPieceLayerComplete
in interfaceTOTorrentFileHashTree
-
getPieceLayer
protected byte[] getPieceLayer()
-
addPieceLayer
protected java.util.List<byte[]> addPieceLayer(byte[] piece_layer) throws TOTorrentException
- Throws:
TOTorrentException
-
requestPieceHash
public TOTorrentFileHashTree.HashRequest requestPieceHash(int piece_number, BitFlags available)
- Specified by:
requestPieceHash
in interfaceTOTorrentFileHashTree
-
receivedHashes
public void receivedHashes(byte[] root_hash, int base_layer, int index, int length, int proof_layers, byte[][] hashes)
- Specified by:
receivedHashes
in interfaceTOTorrentFileHashTree
-
requestHashes
public boolean requestHashes(TOTorrentFileHashTree.PieceTreeProvider piece_tree_provider, TOTorrentFileHashTree.HashesReceiver hashes_receiver, byte[] root_hash, int base_layer, int index, int length, int proof_layers)
- Specified by:
requestHashes
in interfaceTOTorrentFileHashTree
-
requestHashesSupport
private boolean requestHashesSupport(TOTorrentFileHashTree.PieceTreeProvider piece_tree_provider, TOTorrentFileHashTree.HashesReceiver hashes_receiver, byte[] root_hash, int base_layer, int index, int length, int proof_layers, byte[][] loaded_piece_tree)
-
-