/* */ #ifndef _D_ANNOUNCE_TIER_H_ #define _D_ANNOUNCE_TIER_H_ #include "common.h" class AnnounceTier { public: enum AnnounceEvent { STARTED, STARTED_AFTER_COMPLETION, DOWNLOADING, STOPPED, COMPLETED, SEEDING, HALTED }; AnnounceEvent event; Strings urls; AnnounceTier(const Strings& urls):event(STARTED), urls(urls) {} void nextEvent() { switch(event) { case STARTED: event = DOWNLOADING; break; case STARTED_AFTER_COMPLETION: event = SEEDING; break; case STOPPED: event = HALTED; break; case COMPLETED: event = SEEDING; break; default: break; } } }; typedef SharedHandle AnnounceTierHandle; typedef deque AnnounceTiers; #endif // _D_ANNOUNCE_TIER_H_