/* */ #ifndef _D_TIME_SEED_CRITERIA_H_ #define _D_TIME_SEED_CRITERIA_H_ #include "SeedCriteria.h" #include "TimerA2.h" #include "wallclock.h" namespace aria2 { class TimeSeedCriteria : public SeedCriteria { private: // How much time the client does seeding in seconds. time_t _duration; Timer _watch; public: TimeSeedCriteria(time_t duration):_duration(duration) {} virtual ~TimeSeedCriteria() {} virtual void reset() { _watch = global::wallclock; } virtual bool evaluate() { return _watch.difference(global::wallclock) >= _duration; } void setDuration(time_t duration) { _duration = duration; } time_t getDuration() const { return _duration; } }; } // namespace aria2 #endif // _D_TIME_SEED_CRITERIA_H_