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 Details

  • Constructor Details

    • MagnetState

      public MagnetState(byte[] iHash, MetaInfo meta)
      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

      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