/* */ #ifndef _D_DEFAULT_BT_PROGRESS_INFO_FILE_H_ #define _D_DEFAULT_BT_PROGRESS_INFO_FILE_H_ #include "BtProgressInfoFile.h" namespace aria2 { class DownloadContext; class PieceStorage; class PeerStorage; class BtRuntime; class Logger; class Option; class DefaultBtProgressInfoFile : public BtProgressInfoFile { private: SharedHandle dctx_; SharedHandle pieceStorage_; #ifdef ENABLE_BITTORRENT SharedHandle peerStorage_; SharedHandle btRuntime_; #endif // ENABLE_BITTORRENT const Option* option_; Logger* logger_; std::string filename_; bool isTorrentDownload(); static const std::string V0000; static const std::string V0001; public: DefaultBtProgressInfoFile(const SharedHandle& btContext, const SharedHandle& pieceStorage, const Option* option); virtual ~DefaultBtProgressInfoFile(); virtual std::string getFilename() { return filename_; } virtual bool exists(); virtual void save(); virtual void load(); virtual void removeFile(); // re-set filename using current dctx_. virtual void updateFilename(); #ifdef ENABLE_BITTORRENT // for torrents void setPeerStorage(const SharedHandle& peerStorage); void setBtRuntime(const SharedHandle& btRuntime); #endif // ENABLE_BITTORRENT static const std::string& getSuffix() { static std::string suffix = ".aria2"; return suffix; } }; } // namespace aria2 #endif // _D_DEFAULT_BT_PROGRESS_INFO_FILE_H_