friend Exec;
friend Io;
+public:
+ // enum class State { ... }
+ XBT_DECLARE_ENUM_CLASS(State, INITED, STARTING, STARTED, CANCELED, FINISHED);
+
protected:
Activity() = default;
virtual ~Activity() = default;
virtual bool is_assigned() const = 0;
+ virtual void complete(Activity::State state)
+ {
+ state_ = state;
+ if (state == State::FINISHED)
+ release_dependencies();
+ }
+
void release_dependencies()
{
while (not successors_.empty()) {
a->dependencies_.erase({this});
} else
throw std::invalid_argument("Dependency does not exist. Can not be removed.");
-
}
public:
Activity& operator=(Activity const&) = delete;
#endif
- // enum class State { ... }
- XBT_DECLARE_ENUM_CLASS(State, INITED, STARTING, STARTED, CANCELED, FINISHED);
-
/** Starts a previously created activity.
*
* This function is optional: you can call wait() even if you didn't call start()