Package org.klomp.snark
Class MagnetState
java.lang.Object
org.klomp.snark.MagnetState
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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
chunkSize
(int chunk) int
byte[]
getChunk
(int chunk) int
int
getSize()
void
initialize
(int size) Call this for a new magnet when you have the sizeboolean
boolean
boolean
saveChunk
(int chunk, byte[] data, int off, int length) void
setMetaInfo
(MetaInfo meta) Call this for a new magnet when the download is complete.
-
Field Details
-
CHUNK_SIZE
public static final int CHUNK_SIZE- See Also:
-
-
Constructor Details
-
MagnetState
- Parameters:
meta
- null for new magnet
-
-
Method Details
-
initialize
public void initialize(int size) Call this for a new magnet when you have the size- Throws:
IllegalArgumentException
-
setMetaInfo
Call this for a new magnet when the download is complete.- Throws:
IllegalArgumentException
-
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
- Returns:
- true if this was the last piece
- Throws:
NullPointerException
- IllegalArgumentException, IOException, ...Exception
-