23 #include <ktorrent_export.h>
24 #include <util/constants.h>
25 #include <torrent/torrent.h>
26 #include <diskio/piecedata.h>
38 class PreallocationThread;
39 class TorrentFileInterface;
52 Cache(
Torrent & tor,
const QString & tmpdir,
const QString & datadir);
94 virtual Job* moveDataFiles(
const QString & ndir) = 0;
100 virtual void moveDataFilesFinished(
Job* job) = 0;
173 virtual Job* moveDataFiles(
const QMap<TorrentFileInterface*,QString> & files);
180 virtual void moveDataFilesFinished(
const QMap<TorrentFileInterface*,QString> & files,
Job* job);
243 PieceData::Ptr findPiece(
Chunk* c,Uint32 off,Uint32 len,
bool read_only);
244 void insertPiece(
Chunk* c,PieceData::Ptr p);
245 void clearPieceCache();
246 void cleanupPieceCache();
247 void saveMountPoints(
const QSet<QString> & mp);
253 bool preexisting_files;
254 Uint32 mmap_failures;
256 typedef QMultiMap<Chunk*,PieceData::Ptr> PieceCache;
257 PieceCache piece_cache;
259 QSet<QString> mount_points;
261 static bool preallocate_files;
262 static bool preallocate_fully;
static void setPreallocationEnabled(bool on)
virtual void changeOutputPath(const QString &outputpath)=0
virtual void saveFileMap()=0
virtual bool hasMissingFiles(QStringList &sl)=0
static void setPreallocateFully(bool on)
Keep track of a piece of the file.
virtual void downloadStatusChanged(TorrentFile *, bool)
Does nothing, can be overridden to be alerted of download status changes of a TorrentFile.
void clearPieces(Chunk *c)
virtual Job * deleteDataFiles()=0
virtual void savePiece(PieceData::Ptr piece)=0
static bool mappedModeAllowed()
bool hasExistingFiles() const
See if the download has existing files.
bool isStorageMounted(QStringList &missing)
Is the storage mounted ?
static bool preallocateFully()
QString getDataDir() const
Get the datadir.
Manages the temporary data.
virtual void preparePreallocation(PreallocationThread *prealloc)=0
virtual PieceData::Ptr preparePiece(Chunk *c, Uint32 off, Uint32 length)=0
virtual void changeTmpDir(const QString &ndir)
virtual PieceData::Ptr loadPiece(Chunk *c, Uint32 off, Uint32 length)=0
virtual bool getMountPoints(QSet< QString > &mps)=0
virtual Uint64 diskUsage()=0
virtual void loadFileMap()=0
virtual QString getOutputPath() const =0
static bool preallocationEnabled()