Class RDResumeHandler
- java.lang.Object
-
- com.biglybt.core.disk.impl.resume.RDResumeHandler
-
public class RDResumeHandler extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
RDResumeHandler.ProgressListener
-
Field Summary
Fields Modifier and Type Field Description private boolean
check_in_progress
private boolean
check_interrupted
private boolean
check_is_full_check
private int
check_position
private boolean
check_resume_was_valid
(package private) DMChecker
checker
(package private) DiskManagerImpl
disk_manager
private static LogIDs
LOGID
static byte
PIECE_DONE
static byte
PIECE_NOT_DONE
static byte
PIECE_RECHECK_REQUIRED
static byte
PIECE_STARTED
(package private) static boolean
skip_comp_dl_file_checks
private boolean
started
private boolean
stopped
private boolean
stopped_for_close
private static boolean
TEST_RECHECK_FAILURE_HANDLING
(package private) static boolean
use_fast_resume
(package private) static boolean
use_fast_resume_recheck_all
-
Constructor Summary
Constructors Constructor Description RDResumeHandler(DiskManagerImpl _disk_manager, DMChecker _writer_and_checker)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
checkAllPieces(boolean newfiles, boolean forceRecheck, RDResumeHandler.ProgressListener listener)
static void
clearResumeData(DownloadManager download_manager, DiskManagerFileInfo file)
private static int
clearResumeDataSupport(DownloadManager download_manager, DiskManagerFileInfo file, boolean recheck, boolean onlyClearUnsharedFirstLast)
static boolean
fileMustExist(DownloadManager download_manager, DiskManagerFileInfo file)
Deprecated.Kept for xmwebuistatic boolean
fileMustExist(DownloadManager download_manager, DiskManagerFileInfoSet fileSet, DiskManagerFileInfo file)
private static int
findFirstFileWithPieceN(int firstPiece, DiskManagerFileInfo[] files)
finds the first affected file via binary search, this is necessary as some methods might be invoked for all files, which would result in O(n²) if we'd scan the whole file array every timeprivate java.util.Map
getResumeData()
protected static java.util.Map
getResumeData(DownloadManager download_manager)
protected static java.util.Map
getResumeData(DownloadManagerState download_manager_state)
private static boolean
isTorrentResumeDataComplete(int piece_count, java.util.Map resume_data)
static boolean
isTorrentResumeDataComplete(DownloadManagerState dms)
static void
recheckFile(DownloadManager download_manager, DiskManagerFileInfo file)
void
saveResumeData(boolean interim_save)
private static void
saveResumeData(DownloadManagerState download_manager_state, java.util.Map resume_data)
private void
saveResumeData(java.util.Map resume_data)
static void
setTorrentResumeDataComplete(DownloadManagerState download_manager_state)
static void
setTorrentResumeDataNearlyComplete(DownloadManagerState download_manager_state)
static void
setupPieces(DownloadManagerState dms, DiskManagerPiece[] pieces)
void
start()
void
stop(boolean closing)
static int
storageTypeChanged(DownloadManager download_manager, DiskManagerFileInfo file)
-
-
-
Field Detail
-
LOGID
private static final LogIDs LOGID
-
TEST_RECHECK_FAILURE_HANDLING
private static final boolean TEST_RECHECK_FAILURE_HANDLING
- See Also:
- Constant Field Values
-
PIECE_NOT_DONE
public static final byte PIECE_NOT_DONE
- See Also:
- Constant Field Values
-
PIECE_DONE
public static final byte PIECE_DONE
- See Also:
- Constant Field Values
-
PIECE_RECHECK_REQUIRED
public static final byte PIECE_RECHECK_REQUIRED
- See Also:
- Constant Field Values
-
PIECE_STARTED
public static final byte PIECE_STARTED
- See Also:
- Constant Field Values
-
use_fast_resume
static boolean use_fast_resume
-
use_fast_resume_recheck_all
static boolean use_fast_resume_recheck_all
-
skip_comp_dl_file_checks
static boolean skip_comp_dl_file_checks
-
disk_manager
final DiskManagerImpl disk_manager
-
checker
final DMChecker checker
-
started
private volatile boolean started
-
stopped
private volatile boolean stopped
-
stopped_for_close
private volatile boolean stopped_for_close
-
check_in_progress
private volatile boolean check_in_progress
-
check_resume_was_valid
private volatile boolean check_resume_was_valid
-
check_is_full_check
private volatile boolean check_is_full_check
-
check_interrupted
private volatile boolean check_interrupted
-
check_position
private volatile int check_position
-
-
Constructor Detail
-
RDResumeHandler
public RDResumeHandler(DiskManagerImpl _disk_manager, DMChecker _writer_and_checker)
-
-
Method Detail
-
start
public void start()
-
stop
public void stop(boolean closing)
-
checkAllPieces
public void checkAllPieces(boolean newfiles, boolean forceRecheck, RDResumeHandler.ProgressListener listener)
-
saveResumeData
public void saveResumeData(boolean interim_save) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getResumeData
private java.util.Map getResumeData()
-
saveResumeData
private void saveResumeData(java.util.Map resume_data)
-
getResumeData
protected static java.util.Map getResumeData(DownloadManager download_manager)
-
getResumeData
protected static java.util.Map getResumeData(DownloadManagerState download_manager_state)
-
saveResumeData
private static void saveResumeData(DownloadManagerState download_manager_state, java.util.Map resume_data)
-
setTorrentResumeDataComplete
public static void setTorrentResumeDataComplete(DownloadManagerState download_manager_state)
-
clearResumeDataSupport
private static int clearResumeDataSupport(DownloadManager download_manager, DiskManagerFileInfo file, boolean recheck, boolean onlyClearUnsharedFirstLast)
-
findFirstFileWithPieceN
private static int findFirstFileWithPieceN(int firstPiece, DiskManagerFileInfo[] files)
finds the first affected file via binary search, this is necessary as some methods might be invoked for all files, which would result in O(n²) if we'd scan the whole file array every time
-
fileMustExist
public static boolean fileMustExist(DownloadManager download_manager, DiskManagerFileInfo file)
Deprecated.Kept for xmwebui
-
fileMustExist
public static boolean fileMustExist(DownloadManager download_manager, DiskManagerFileInfoSet fileSet, DiskManagerFileInfo file)
-
storageTypeChanged
public static int storageTypeChanged(DownloadManager download_manager, DiskManagerFileInfo file)
-
clearResumeData
public static void clearResumeData(DownloadManager download_manager, DiskManagerFileInfo file)
-
recheckFile
public static void recheckFile(DownloadManager download_manager, DiskManagerFileInfo file)
-
setTorrentResumeDataNearlyComplete
public static void setTorrentResumeDataNearlyComplete(DownloadManagerState download_manager_state)
-
isTorrentResumeDataComplete
public static boolean isTorrentResumeDataComplete(DownloadManagerState dms)
-
isTorrentResumeDataComplete
private static boolean isTorrentResumeDataComplete(int piece_count, java.util.Map resume_data)
-
setupPieces
public static void setupPieces(DownloadManagerState dms, DiskManagerPiece[] pieces)
-
-