Package org.klomp.snark
Class MagnetState
- java.lang.Object
-
- org.klomp.snark.MagnetState
-
class MagnetState extends Object
Simple state for the download of the metainfo, shared between Peer and ExtensionHandler. Nothing is synchronized here! Caller must synchronize on this for everything! Reference: BEP 9- Since:
- 0.8.4 author zzz
-
-
Field Summary
Fields Modifier and Type Field Description static intCHUNK_SIZE
-
Constructor Summary
Constructors Constructor Description MagnetState(byte[] iHash, MetaInfo meta)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intchunkSize(int chunk)intchunksRemaining()byte[]getChunk(int chunk)MetaInfogetMetaInfo()intgetNextRequest()intgetSize()voidinitialize(int size)Call this for a new magnet when you have the sizebooleanisComplete()booleanisInitialized()booleansaveChunk(int chunk, byte[] data, int off, int length)voidsetMetaInfo(MetaInfo meta)Call this for a new magnet when the download is complete.
-
-
-
Field Detail
-
CHUNK_SIZE
public static final int CHUNK_SIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MagnetState
public MagnetState(byte[] iHash, MetaInfo meta)- Parameters:
meta- null for new magnet
-
-
Method Detail
-
initialize
public void initialize(int size)
Call this for a new magnet when you have the size- Throws:
IllegalArgumentException
-
setMetaInfo
public void setMetaInfo(MetaInfo meta)
Call this for a new magnet when the download is complete.- Throws:
IllegalArgumentException
-
getMetaInfo
public MetaInfo getMetaInfo()
- Throws:
IllegalArgumentException
-
getSize
public int getSize()
- Throws:
IllegalArgumentException
-
isInitialized
public boolean isInitialized()
-
isComplete
public boolean isComplete()
-
chunkSize
public int chunkSize(int chunk)
-
chunksRemaining
public int chunksRemaining()
- Returns:
- chunk count
-
getNextRequest
public int getNextRequest()
- Returns:
- chunk number
-
getChunk
public byte[] getChunk(int chunk)
- Throws:
IllegalArgumentException
-
saveChunk
public boolean saveChunk(int chunk, byte[] data, int off, int length) throws Exception- Returns:
- true if this was the last piece
- Throws:
NullPointerException- IllegalArgumentException, IOException, ...Exception
-
-