double rate_ = -1; /* Capping for network resource, or -1 for no capping*/
bool is_used_ = false; /* Indicates whether the task is used in SIMIX currently */
- explicit Task(std::string name, double flops_amount, double bytes_amount, void* data);
- explicit Task(std::string name, std::vector<s4u::Host*>&& hosts, std::vector<double>&& flops_amount,
+ explicit Task(const std::string& name, double flops_amount, double bytes_amount, void* data);
+ explicit Task(const std::string& name, std::vector<s4u::Host*>&& hosts, std::vector<double>&& flops_amount,
std::vector<double>&& bytes_amount, void* data);
void report_multiple_use() const;
public:
- static Task* create(std::string name, double flops_amount, double bytes_amount, void* data);
- static Task* create_parallel(std::string name, int host_nb, const msg_host_t* host_list, double* flops_amount,
+ static Task* create(const std::string& name, double flops_amount, double bytes_amount, void* data);
+ static Task* create_parallel(const std::string& name, int host_nb, const msg_host_t* host_list, double* flops_amount,
double* bytes_amount, void* data);
msg_error_t execute();
- msg_error_t send(std::string alias, double timeout);
- s4u::CommPtr send_async(std::string alias, void_f_pvoid_t cleanup, bool detached);
+ msg_error_t send(const std::string& alias, double timeout);
+ s4u::CommPtr send_async(const std::string& alias, void_f_pvoid_t cleanup, bool detached);
void cancel();
};
class Comm {
+ msg_error_t status_ = MSG_OK; /* status of the communication once finished */
public:
Task* task_sent; /* task sent (NULL for the receiver) */
Task** task_received; /* where the task will be received (NULL for the sender) */
s4u::CommPtr s_comm; /* SIMIX communication object encapsulated (the same for both processes) */
- msg_error_t status = MSG_OK; /* status of the communication once finished */
Comm(msg_task_t sent, msg_task_t* received, s4u::CommPtr comm)
: task_sent(sent), task_received(received), s_comm(std::move(comm))
{
}
+ bool test();
+ msg_error_t wait_for(double timeout);
+ void set_status(msg_error_t status) { status_ = status; }
+ msg_error_t get_status() { return status_; }
};
class ActorUserData {