+ friend kernel::activity::ActivityImpl;
+ friend std::vector<ActivityPtr> create_DAG_from_dot(const std::string& filename);
+ friend std::vector<ActivityPtr> create_DAG_from_DAX(const std::string& filename);
+ friend std::vector<ActivityPtr> create_DAG_from_json(const std::string& filename);
+#endif
+
+public:
+ // enum class State { ... }
+ XBT_DECLARE_ENUM_CLASS(State, INITED, STARTING, STARTED, FAILED, CANCELED, FINISHED);
+
+ virtual bool is_assigned() const = 0;
+ bool dependencies_solved() const { return dependencies_.empty(); }
+ bool has_no_successor() const { return successors_.empty(); }
+ const std::set<ActivityPtr>& get_dependencies() const { return dependencies_; }
+ const std::vector<ActivityPtr>& get_successors() const { return successors_; }
+ virtual void fire_this_completion() const = 0;