/* */ #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_