blob: dafc1f5e7675fcf5071dcf7ff0b793d9da5d2237 [file] [log] [blame]
/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#ifndef RR_HASTASKSET_H_
#define RR_HASTASKSET_H_
#include <set>
namespace rr {
class Task;
/**
* Base class for classes that manage a set of Tasks.
*/
class HasTaskSet {
public:
typedef std::set<Task*> TaskSet;
const TaskSet& task_set() const { return tasks; }
virtual void insert_task(Task* t);
virtual void erase_task(Task* t);
bool has_task(Task* t) const { return tasks.find(t) != tasks.end(); }
Task* find_other_thread_group(Task* t) const;
Task* first_running_task() const;
protected:
TaskSet tasks;
};
} // namespace rr
#endif /* RR_HASTASKSET_H_ */