Interface DiskManager

All Known Subinterfaces:
DiskManagerHelper
All Known Implementing Classes:
DiskManagerImpl, LWSDiskManager

public interface DiskManager
  • Field Details

  • Method Details

    • getDownload

      DownloadManager getDownload()
      Returns:
      MAY BE NULL
    • start

      void start()
      Start checking/allocating
    • stop

      boolean stop(boolean closing)
      Stop can go async if the download is in a 'starting' state - if so this method returns true
      Parameters:
      closing -
      Returns:
    • isStopped

      boolean isStopped()
    • filesExist

      boolean filesExist()
      Returns:
      whether all files exist and sizes match
    • readBlock

      DirectByteBuffer readBlock(int pieceNumber, int offset, int length)
    • createWriteRequest

      DiskManagerWriteRequest createWriteRequest(int pieceNumber, int offset, DirectByteBuffer data, Object user_data)
    • enqueueWriteRequest

      void enqueueWriteRequest(DiskManagerWriteRequest request, DiskManagerWriteRequestListener listener)
      enqueue an async write request
      Parameters:
      listener -
      pieceNumber -
      offset -
      data -
      user_data - this will be provided to the listener when called back
    • hasOutstandingWriteRequestForPiece

      boolean hasOutstandingWriteRequestForPiece(int piece_number)
    • createReadRequest

      DiskManagerReadRequest createReadRequest(int pieceNumber, int offset, int length)
    • enqueueReadRequest

      void enqueueReadRequest(DiskManagerReadRequest request, DiskManagerReadRequestListener listener)
      Enqueue an async disk read request.
      Parameters:
      request -
      listener -
    • hasOutstandingReadRequestForPiece

      boolean hasOutstandingReadRequestForPiece(int piece_number)
    • createCheckRequest

      DiskManagerCheckRequest createCheckRequest(int pieceNumber, Object user_data)
      Create a request to check a particular piece
      Parameters:
      pieceNumber - -1 for a complete recheck request
      user_data -
      Returns:
    • enqueueCheckRequest

      void enqueueCheckRequest(DiskManagerCheckRequest request, DiskManagerCheckRequestListener listener)
      enqueue an asynchronous single piece check
      Parameters:
      listener -
      pieceNumber -
      user_data -
    • hasOutstandingCheckRequestForPiece

      boolean hasOutstandingCheckRequestForPiece(int piece_number)
    • enqueueCompleteRecheckRequest

      void enqueueCompleteRecheckRequest(DiskManagerCheckRequest request, DiskManagerCheckRequestListener listener)
      recheck the entire torrent asynchronously, reporting each piece to the listener
      Parameters:
      listener -
      user_data -
    • setPieceCheckingEnabled

      void setPieceCheckingEnabled(boolean enabled)
    • saveResumeData

      void saveResumeData(boolean interim_save) throws Exception
      Throws:
      Exception
    • getPieces

      DiskManagerPiece[] getPieces()
    • getNbPieces

      int getNbPieces()
    • getAvailability

      BitFlags getAvailability()
    • getFiles

      DiskManagerFileInfo[] getFiles()
    • getFileSet

    • getPiece

      DiskManagerPiece getPiece(int PieceNumber)
    • getPieceMap

      DMPieceMap getPieceMap()
      DON'T CACHE the DMPieceMap - as it is designed to be discarded when not in use
      Returns:
    • getPieceList

      DMPieceList getPieceList(int pieceNumber)
    • getState

      int getState()
    • getTotalLength

      long getTotalLength()
    • getPieceLength

      int getPieceLength()
    • getPieceLength

      int getPieceLength(int piece_number)
    • getRemaining

      long getRemaining()
      Get remaining bytes to completion *including* DND files
    • getRemainingExcludingDND

      long getRemainingExcludingDND()
    • getPercentDone

      int getPercentDone()
      Get the percentage done during checking, allocation or initializing
      Returns:
      percent done * 1000 (1000 = 100%)
    • getPercentAllocated

      int getPercentAllocated()
    • getLatency

      default long[] getLatency()
    • getAllocationTask

      default String getAllocationTask()
    • getErrorMessage

      String getErrorMessage()
    • getErrorType

      int getErrorType()
    • downloadEnded

      DiskManager.DownloadEndedProgress downloadEnded(boolean start_of_day)
    • downloadRemoved

      void downloadRemoved()
    • moveDataFiles

      void moveDataFiles(File new_parent_dir, String dl_name)
    • getCompleteRecheckStatus

      int getCompleteRecheckStatus()
      returns -1 if no recheck in progress, percentage complete in 1000 notation otherwise
      Returns:
    • getRecheckCancelled

      boolean getRecheckCancelled()
    • getMoveProgress

      long[] getMoveProgress()
      When a download's data is moving (for completion or removal events) this gives the [progress in 1000 notation,total_size] null if nothing's going on
      Returns:
    • getMoveSubTask

      String getMoveSubTask()
    • setMoveState

      void setMoveState(int state)
    • checkBlockConsistencyForWrite

      boolean checkBlockConsistencyForWrite(String originator, int pieceNumber, int offset, DirectByteBuffer data)
      method for checking that the block details are sensible
      Parameters:
      pieceNumber -
      offset -
      data -
      Returns:
    • checkBlockConsistencyForRead

      boolean checkBlockConsistencyForRead(String originator, boolean peer_request, int pieceNumber, int offset, int length)
      method for checking that the block details are sensible
      Parameters:
      pieceNumber -
      offset -
      length -
      Returns:
    • checkBlockConsistencyForHint

      boolean checkBlockConsistencyForHint(String originator, int pieceNumber, int offset, int length)
    • getTorrent

      TOTorrent getTorrent()
    • getSaveLocation

      File getSaveLocation()
    • addListener

      void addListener(DiskManagerListener l)
    • removeListener

      void removeListener(DiskManagerListener l)
    • hasListener

      boolean hasListener(DiskManagerListener l)
    • saveState

      void saveState(boolean interim)
      Save the individual file priorities map to DownloadManager.getData( "file_priorities" ).
    • isInteresting

      boolean isInteresting(int pieceNumber)
      Parameters:
      pieceNumber -
      Returns:
      true if the pieceNumber is Needed and not Done
    • isDone

      boolean isDone(int pieceNumber)
    • getCacheMode

      int getCacheMode()
    • getReadStats

      long[] getReadStats()
    • getWriteStats

      long[] getWriteStats()
    • generateEvidence

      void generateEvidence(IndentWriter writer)
    • getSizeExcludingDND

      long getSizeExcludingDND()
    • getPercentDoneExcludingDND

      int getPercentDoneExcludingDND()
    • getPriorityChangeMarker

      long getPriorityChangeMarker()
    • rateLimitChanged

      void rateLimitChanged()