Resume data
Using the functions torrent::Download::hash_check(true) and torrent::Download::hash_resume_save() the client can tell the library to load and save various data that is useful when resuming a download. To ignore resume data call torrent::Download::hash_check(true).
The resume data is stored in the bencoded torrent as a dictionary under the key "libtorrent resume". All the following items are within that dictionary.
Completed chunks
When resuming the library will skip hash checking for chunk ranges that have valid resume data. The file modification time-stamp is stored with the resume data, and ranges containing files whose stored time-stamp does not exactly match what is on the disk it will be invalidated. If the file size does not match it will also invalidate the range.
Peer addresses
Peer addresses that are contained in torrent::AvailableList will be saved, which will includes connected peers as their addresses are copied over when a torrent is stopped.
Files
Various file related information is stored in a list under the key "files". This list exactly matches the file list in the original torrent.
- mtime: File modification time-stamp as an integer.
- priority: The file priority as an integer between [0,3>.