struct ExtendedAttributeActivity {
static simgrid::xbt::Extension<simgrid::s4u::Activity, ExtendedAttributeActivity> EXTENSION_ID;
Task* task_;
};
struct ExtendedAttributeActivity {
static simgrid::xbt::Extension<simgrid::s4u::Activity, ExtendedAttributeActivity> EXTENSION_ID;
Task* task_;
};
std::set<Task*> successors_ = {};
std::map<Task*, unsigned int> predecessors_ = {};
std::set<Task*> successors_ = {};
std::map<Task*, unsigned int> predecessors_ = {};
- std::vector<std::function<void(Task*)>> end_func_handlers_;
- std::vector<std::function<void(Task*)>> start_func_handlers_;
+ xbt::signal<void(Task*)> on_this_start_;
+ xbt::signal<void(Task*)> on_this_end_;
void enqueue_execs(int n);
void set_amount(double amount);
double get_amount() const { return amount_; }
void enqueue_execs(int n);
void set_amount(double amount);
double get_amount() const { return amount_; }
void add_successor(TaskPtr t);
void remove_successor(TaskPtr t);
void remove_all_successors();
const std::set<Task*>& get_successors() const { return successors_; }
void add_successor(TaskPtr t);
void remove_successor(TaskPtr t);
void remove_all_successors();
const std::set<Task*>& get_successors() const { return successors_; }
- void on_this_start(const std::function<void(Task*)>& func);
- void on_this_end(const std::function<void(Task*)>& func);
+ void on_this_start_cb(const std::function<void(Task*)>& func);
+ void on_this_end_cb(const std::function<void(Task*)>& func);
s4u::Host* get_host() const { return host_; }
ExecTaskPtr set_flops(double flops);
double get_flops() const { return get_amount(); }
s4u::Host* get_host() const { return host_; }
ExecTaskPtr set_flops(double flops);
double get_flops() const { return get_amount(); }
s4u::Host* get_destination() const { return destination_; }
CommTaskPtr set_bytes(double bytes);
double get_bytes() const { return get_amount(); }
s4u::Host* get_destination() const { return destination_; }
CommTaskPtr set_bytes(double bytes);
double get_bytes() const { return get_amount(); }
IoTaskPtr set_disk(s4u::Disk* disk);
s4u::Disk* get_disk() const { return disk_; }
IoTaskPtr set_bytes(double bytes);
IoTaskPtr set_disk(s4u::Disk* disk);
s4u::Disk* get_disk() const { return disk_; }
IoTaskPtr set_bytes(double bytes);
- s4u::Io::OpType get_op_type() { return type_; }
-
- friend void inline intrusive_ptr_release(IoTask* i) { intrusive_ptr_release(static_cast<Task*>(i)); }
- friend void inline intrusive_ptr_add_ref(IoTask* i) { intrusive_ptr_add_ref(static_cast<Task*>(i)); }
+ s4u::Io::OpType get_op_type() const { return type_; }