Class 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
    • 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
      • 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
      • 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