X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ed6dd6d6767dcd55696f847b7436ff28f9dbd664..268f33a4d5bc5c8eca704ce3028e4e3c283fdb02:/src/s4u/s4u_Comm.cpp diff --git a/src/s4u/s4u_Comm.cpp b/src/s4u/s4u_Comm.cpp index 2443dd145d..eec97a78ad 100644 --- a/src/s4u/s4u_Comm.cpp +++ b/src/s4u/s4u_Comm.cpp @@ -24,7 +24,7 @@ xbt::signal Comm::on_send; xbt::signal Comm::on_recv; xbt::signal Comm::on_completion; -CommPtr Comm::set_copy_data_callback(void (*callback)(kernel::activity::CommImpl*, void*, size_t)) +CommPtr Comm::set_copy_data_callback(const std::function& callback) { copy_data_function_ = callback; return this; @@ -61,8 +61,10 @@ Comm::~Comm() } void Comm::send(kernel::actor::ActorImpl* sender, const Mailbox* mbox, double task_size, double rate, void* src_buff, - size_t src_buff_size, bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*), - void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t), void* data, double timeout) + size_t src_buff_size, + const std::function& match_fun, + const std::function& copy_data_fun, + void* data, double timeout) { /* checking for infinite values */ xbt_assert(std::isfinite(task_size), "task_size is not finite!"); @@ -102,9 +104,9 @@ void Comm::send(kernel::actor::ActorImpl* sender, const Mailbox* mbox, double ta } void Comm::recv(kernel::actor::ActorImpl* receiver, const Mailbox* mbox, void* dst_buff, size_t* dst_buff_size, - bool (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*), - void (*copy_data_fun)(simgrid::kernel::activity::CommImpl*, void*, size_t), void* data, double timeout, - double rate) + const std::function& match_fun, + const std::function& copy_data_fun, + void* data, double timeout, double rate) { xbt_assert(std::isfinite(timeout), "timeout is not finite!"); xbt_assert(mbox, "No rendez-vous point defined for recv");