X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3f756b051175054c62c4741fdab2a6b934828262..cfb3987654b857620ba388fab9883a095debeb72:/include/simgrid/s4u/Comm.hpp diff --git a/include/simgrid/s4u/Comm.hpp b/include/simgrid/s4u/Comm.hpp index e5b8ad486e..c8a0156c36 100644 --- a/include/simgrid/s4u/Comm.hpp +++ b/include/simgrid/s4u/Comm.hpp @@ -43,8 +43,6 @@ class XBT_PUBLIC Comm : public Activity_T { xbt::signal on_this_send; static xbt::signal on_recv; xbt::signal on_this_recv; - inline static xbt::signal on_start; - xbt::signal on_this_start; protected: void fire_on_completion() const override { @@ -54,15 +52,12 @@ protected: } void fire_on_this_completion() const override { /* The completion signal of a Comm has to be thrown only once and not by the sender AND the receiver. - then Comm::on_completion is thrown in the kernel in CommImpl::finish. + then Comm::on_this_completion is thrown in the kernel in CommImpl::finish. */ } - void fire_on_suspend() const override { on_suspend(*this); } - void fire_on_this_suspend() const override { on_this_suspend(*this); } - void fire_on_resume() const override { on_resume(*this); } - void fire_on_this_resume() const override { on_this_resume(*this); } - void fire_on_veto() const override { on_veto(const_cast(*this)); } - void fire_on_this_veto() const override { on_this_veto(const_cast(*this)); } + /* These ensure that the on_completion signals are really thrown */ + void fire_on_completion_for_real() const { Activity_T::fire_on_completion(); } + void fire_on_this_completion_for_real() const { Activity_T::fire_on_this_completion(); } public: /*! \static Add a callback fired when the send of any Comm is posted */ @@ -73,10 +68,6 @@ public: static void on_recv_cb(const std::function& cb) { on_recv.connect(cb); } /*! Add a callback fired when the recv of this specific Comm is posted */ void on_this_recv_cb(const std::function& cb) { on_this_recv.connect(cb); } - /*! \static Add a callback fired when any Comm starts */ - static void on_start_cb(const std::function& cb) { on_start.connect(cb); } - /*! Add a callback fired when this specific Comm starts */ - void on_this_start_cb(const std::function& cb) { on_this_start.connect(cb); } CommPtr set_copy_data_callback(const std::function& callback); XBT_ATTRIB_DEPRECATED_v338("Please manifest if you actually need this function") static void copy_buffer_callback( @@ -160,6 +151,9 @@ public: void* get_dst_data() const { return dst_buff_; } /** Retrieve the size of the received data. Not to be mixed with @ref Activity::get_remaining() */ size_t get_dst_data_size() const { return dst_buff_size_; } + /** Retrieve the payload associated to the communication. You can only do that once the comm is (gracefully) + * terminated, and it is only setup by the default copy_data callback (not the SMPI one) */ + void* get_payload() const; /* Common functions */