X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0c84caf099147dcdc1a7ccfef467998a425b35aa..6f8347f58430e00fabef8e6cbbf3fb94e6b8a49d:/include/simgrid/plugins/task.hpp diff --git a/include/simgrid/plugins/task.hpp b/include/simgrid/plugins/task.hpp index bf8609d40d..87a357be43 100644 --- a/include/simgrid/plugins/task.hpp +++ b/include/simgrid/plugins/task.hpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -28,6 +29,8 @@ struct ExtendedAttributeActivity { Task* task_; }; +class XBT_PUBLIC Token : public xbt::Extendable {}; + class Task { std::set successors_ = {}; std::map predecessors_ = {}; @@ -39,9 +42,12 @@ class Task { protected: std::string name_; double amount_; + std::shared_ptr token_ = nullptr; + std::deque>> tokens_received_; int queued_execs_ = 0; int count_ = 0; bool working_ = false; + s4u::ActivityPtr previous_activity_; s4u::ActivityPtr current_activity_; xbt::signal on_this_start_; xbt::signal on_this_end_; @@ -60,6 +66,8 @@ public: void enqueue_execs(int n); void set_amount(double amount); double get_amount() const { return amount_; } + void set_token(std::shared_ptr token); + std::shared_ptr get_next_token_from(TaskPtr t); void add_successor(TaskPtr t); void remove_successor(TaskPtr t); void remove_all_successors(); @@ -133,9 +141,9 @@ public: IoTaskPtr set_disk(s4u::Disk* disk); s4u::Disk* get_disk() const { return disk_; } IoTaskPtr set_bytes(double bytes); - double get_bytes() { return get_amount(); } + double get_bytes() const { return get_amount(); } IoTaskPtr set_op_type(s4u::Io::OpType type); - s4u::Io::OpType get_op_type() { return type_; } + s4u::Io::OpType get_op_type() const { return type_; } }; } // namespace simgrid::plugins #endif