/* */ #ifndef _D_TORRENT_DOWNLOAD_ENGINE_H_ #define _D_TORRENT_DOWNLOAD_ENGINE_H_ #include "DownloadEngine.h" #include "TorrentMan.h" #include "TimeA2.h" class TorrentDownloadEngine : public DownloadEngine { private: bool filenameFixed; void initStatistics(); void calculateStatistics(); protected: Time cp[2]; long long int sessionDownloadLengthArray[2]; long long int sessionUploadLengthArray[2]; int currentCp; int downloadSpeed; int uploadSpeed; int lastElapsed; long long int selectedDownloadLengthDiff; long long int selectedTotalLength; // The time when startup Time startup; // The number of bytes downloaded since startup long long int sessionDownloadLength; // The average speed(bytes per second) since startup int avgSpeed; // The estimated remaining time to complete the download. int eta; long long int downloadLength; long long int totalLength; int calculateSpeed(long long int sessionLength, int elapsed); virtual void onEndOfRun(); virtual void sendStatistics() = 0; public: TorrentDownloadEngine(); virtual ~TorrentDownloadEngine(); TorrentMan* torrentMan; bool isFilenameFixed() const { return filenameFixed; } // returns uploading speed in byte/sec. int getUploadSpeed() const { return uploadSpeed; } int getDownloadSpeed() const { return downloadSpeed; } }; #endif // _D_TORRENT_DOWNLOAD_ENGINE_H_