Unit *getNextUnit() { UnitTime ut = time_queue.top(); time_queue.pop(); ticks = ut.tick; return (current_unit = ut.unit); }
void get_next(fractional_t &t) { TestPoints* pt; do // avoid duplicates { pt = queue.top(); queue.pop(); t = pt->get_cur(); pt->next(); queue.push(pt); } while (t == last); last = t; }
void init(const fractional_t &speed, const fractional_t &min_time) { last = -1; // clean out queue while (!queue.empty()) queue.pop(); // add all iterators for (unsigned int i = 0; i < ts.get_task_count(); i++) { pts[i].init(ts[i], speed, min_time); queue.push(pts + i); } }