Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Mark all of simix.h as deprecated.
[simgrid.git] / include / simgrid / s4u / Comm.hpp
index d43131a..d4ea842 100644 (file)
@@ -59,6 +59,15 @@ public:
 
   ~Comm() override;
 
+  static void 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);
+  static void 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);
+
   /* "One-sided" communications. This way of communicating bypasses the mailbox and actors mechanism. It creates a
    * communication (vetoabled, asynchronous, or synchronous) directly between two hosts. There is really no limit on
    * the hosts involved. In particular, the actor creating such a communication does not have to be on one of the
@@ -119,7 +128,7 @@ public:
    * That's a buffer where the sent data will be copied  */
   CommPtr set_dst_data(void** buff, size_t size);
   /** Retrieve where the data will be copied on the receiver side */
-  void* get_dst_data() { return dst_buff_; }
+  void* get_dst_data() const { return dst_buff_; }
   /** Retrieve the size of the received data. Not to be mixed with @ref Activity::set_remaining()  */
   size_t get_dst_data_size() const { return dst_buff_size_; }