Interface DiskManager

    • Method Detail

      • 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)
      • enqueueWriteRequest

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

        boolean hasOutstandingWriteRequestForPiece​(int piece_number)
      • hasOutstandingReadRequestForPiece

        boolean hasOutstandingReadRequestForPiece​(int piece_number)
      • createCheckRequest

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

        boolean hasOutstandingCheckRequestForPiece​(int piece_number)
      • setPieceCheckingEnabled

        void setPieceCheckingEnabled​(boolean enabled)
      • saveResumeData

        void saveResumeData​(boolean interim_save)
                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • getNbPieces

        int getNbPieces()
      • getAvailability

        BitFlags getAvailability()
      • 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 java.lang.String getAllocationTask()
      • getErrorMessage

        java.lang.String getErrorMessage()
      • getErrorType

        int getErrorType()
      • downloadRemoved

        void downloadRemoved()
      • moveDataFiles

        void moveDataFiles​(java.io.File new_parent_dir,
                           java.lang.String dl_name)
      • getCompleteRecheckStatus

        int getCompleteRecheckStatus()
        returns -1 if no recheck in progress, percentage complete in 1000 notation otherwise
        Returns:
      • 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

        java.lang.String getMoveSubTask()
      • setMoveState

        void setMoveState​(int state)
      • checkBlockConsistencyForWrite

        boolean checkBlockConsistencyForWrite​(java.lang.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​(java.lang.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​(java.lang.String originator,
                                             int pieceNumber,
                                             int offset,
                                             int length)
      • getSaveLocation

        java.io.File getSaveLocation()
      • 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()