Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
rename Activity::wait(double) to Activity::wait_for(double)
[simgrid.git] / include / simgrid / s4u / Comm.hpp
index be8ccf3..ff9c373 100644 (file)
@@ -23,10 +23,14 @@ class XBT_PUBLIC Comm : public Activity {
 public:
   friend XBT_PUBLIC void intrusive_ptr_release(simgrid::s4u::Comm * c);
   friend XBT_PUBLIC void intrusive_ptr_add_ref(simgrid::s4u::Comm * c);
-  friend Mailbox; // Factory of comms
+  friend simgrid::s4u::Mailbox; // Factory of comms
 
   virtual ~Comm();
 
+  static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_sender_start;
+  static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_receiver_start;
+  static simgrid::xbt::signal<void(simgrid::s4u::ActorPtr)> on_completion;
+
   /*! take a vector s4u::CommPtr and return when one of them is finished.
    * The return value is the rank of the first finished CommPtr. */
   static int wait_any(std::vector<CommPtr> * comms) { return wait_any_for(comms, -1); }
@@ -40,14 +44,15 @@ public:
 
   Activity* start() override;
   Activity* wait() override;
-  Activity* wait(double timeout) override;
+  Activity* wait_for(double timeout) override;
+  bool test() override;
 
   /** Start the comm, and ignore its result. It can be completely forgotten after that. */
   Activity* detach();
   /** Start the comm, and ignore its result. It can be completely forgotten after that. */
-  Activity* detach(void (*cleanFunction)(void*))
+  Activity* detach(void (*clean_function)(void*))
   {
-    clean_fun_ = cleanFunction;
+    clean_fun_ = clean_function;
     return detach();
   }
 
@@ -68,12 +73,13 @@ public:
   /** Retrieve the size of the received data */
   size_t get_dst_data_size();
 
-  bool test();
-  Activity* cancel();
+  Activity* cancel() override;
 
   /** Retrieve the mailbox on which this comm acts */
   MailboxPtr get_mailbox();
 
+#ifndef DOXYGEN
+  XBT_ATTRIB_DEPRECATED_v324("Please use Comm::wait_for()") void wait(double t) override { wait_for(t); }
   XBT_ATTRIB_DEPRECATED_v323("Please use Comm::set_rate()") Activity* setRate(double rate) { return set_rate(rate); }
   XBT_ATTRIB_DEPRECATED_v323("Please use Comm::set_src_data()") Activity* setSrcData(void* buff)
   {
@@ -100,6 +106,7 @@ public:
     return get_dst_data_size();
   }
   XBT_ATTRIB_DEPRECATED_v323("Please use Comm::get_mailbox()") MailboxPtr getMailbox() { return get_mailbox(); }
+#endif
 
 private:
   double rate_        = -1;