virtual bool is_assigned() const = 0;
virtual bool dependencies_solved() const { return dependencies_.empty(); }
virtual unsigned long is_waited_by() const { return successors_.size(); }
- ActivityPtr get_parent() { return *(dependencies_.begin()); }
- ActivityPtr get_child() { return successors_.front(); }
+ const std::set<ActivityPtr>& get_dependencies() const { return dependencies_; }
+ const std::vector<ActivityPtr>& get_successors() const { return successors_; }
protected:
Activity() = default;
double get_start_time() const;
double get_finish_time() const;
+ void mark() { marked_ = true; }
+ bool is_marked() const { return marked_; }
/** Returns the internal implementation of this Activity */
kernel::activity::ActivityImpl* get_impl() const { return pimpl_.get(); }
Activity::State state_ = Activity::State::INITED;
double remains_ = 0;
bool suspended_ = false;
+ bool marked_ = false;
std::vector<ActivityPtr> successors_;
std::set<ActivityPtr> dependencies_;
std::atomic_int_fast32_t refcount_{0};