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 int
CHUNK_SIZE
-
Constructor Summary
Constructors Constructor Description MagnetState(byte[] iHash, MetaInfo meta)
-
Method Summary
Modifier and Type Method Description int
chunkSize(int chunk)
int
chunksRemaining()
byte[]
getChunk(int chunk)
MetaInfo
getMetaInfo()
int
getNextRequest()
int
getSize()
void
initialize(int size)
Call this for a new magnet when you have the sizeboolean
isComplete()
boolean
isInitialized()
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:
- Constant Field Values
-
-
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
-