/* */ #ifndef _D_SHARE_RATIO_SEED_CRITERIA_H_ #define _D_SHARE_RATIO_SEED_CRITERIA_H_ #include "SeedCriteria.h" #include "TorrentMan.h" class ShareRatioSeedCriteria : public SeedCriteria { private: double ratio; TorrentMan* torrentMan; public: ShareRatioSeedCriteria(double ratio, TorrentMan* torrentMan) :ratio(ratio), torrentMan(torrentMan) {} virtual ~ShareRatioSeedCriteria() {} virtual void reset() {} virtual bool evaluate() { if(torrentMan->getDownloadLength() == 0) { return false; } return ratio <= ((double)torrentMan->getUploadLength())/torrentMan->getDownloadLength(); } void setRatio(double ratio) { this->ratio = ratio; } double getRatio() const { return ratio; } }; #endif // _D_SHARE_RATIO_SEED_CRITERIA_H_