/* */ #ifndef _D_DOWNLOAD_COMMAND_H_ #define _D_DOWNLOAD_COMMAND_H_ #include "AbstractCommand.h" #include "TransferEncoding.h" #include "TimeA2.h" #include "PeerStat.h" using namespace std; class DownloadCommand : public AbstractCommand { private: long long int lastSize; uint32_t maxDownloadSpeedLimit; uint32_t startupIdleTime; uint32_t lowestDownloadSpeedLimit; PeerStatHandle peerStat; protected: bool executeInternal(Segment& segment); virtual bool prepareForNextSegment(const Segment& currentSegment); public: DownloadCommand(int cuid, const RequestHandle req, DownloadEngine* e, const SocketHandle& s); virtual ~DownloadCommand(); virtual TransferEncoding* getTransferEncoding(const string& transferEncoding) = 0; string transferEncoding; void setMaxDownloadSpeedLimit(uint32_t maxDownloadSpeedLimit) { this->maxDownloadSpeedLimit = maxDownloadSpeedLimit; } void setStartupIdleTime(uint32_t startupIdleTime) { this->startupIdleTime = startupIdleTime; } void setLowestDownloadSpeedLimit(uint32_t lowestDownloadSpeedLimit) { this->lowestDownloadSpeedLimit = lowestDownloadSpeedLimit; } }; #endif // _D_DOWNLOAD_COMMAND_H_