/* */ #ifndef _D_TORRENT_CONSOLE_DOWNLOAD_ENGINE_H_ #define _D_TORRENT_CONSOLE_DOWNLOAD_ENGINE_H_ #include "TorrentDownloadEngine.h" class TorrentConsoleDownloadEngine : public TorrentDownloadEngine { private: struct timeval 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 struct timeval 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; void printStatistics(); int calculateSpeed(long long int sessionLength, int elapsed); protected: void initStatistics(); void calculateStatistics(); void onSelectiveDownloadingCompletes(); public: TorrentConsoleDownloadEngine(); ~TorrentConsoleDownloadEngine(); }; #endif // _D_TORRENT_CONSOLE_DOWNLOAD_ENGINE_H_