Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
activity::CommImpl: stick to our naming standards for the fields
[simgrid.git] / src / smpi / include / smpi_request.hpp
index 4524947..c629251 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2019. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -18,8 +18,8 @@ class Request : public F2C {
     /* in the case of non-contiguous memory the user address should be keep
      * to unserialize the data inside the user memory*/
     void *old_buf_;
-    /* this let us know how to unserialize at the end of
-     * the communication*/
+    /* this is especially for derived datatypes that we need to serialize/unserialize.
+     * It let us know how to unserialize at the end of the communication */
     MPI_Datatype old_type_;
     size_t size_;
     int src_;
@@ -38,6 +38,7 @@ class Request : public F2C {
     MPI_Request detached_sender_;
     int refcount_;
     MPI_Op op_;
+    int cancelled_;
   public:
     Request()=default;
     Request(void *buf, int count, MPI_Datatype datatype, int src, int dst, int tag, MPI_Comm comm, unsigned flags);
@@ -49,9 +50,11 @@ class Request : public F2C {
     int tag();
     int flags();
     int detached();
+    MPI_Datatype type();
     void print_request(const char *message);
     void start();
-
+    void cancel();
+    void ref();
     static void finish_wait(MPI_Request* request, MPI_Status * status);
     static void unref(MPI_Request* request);
     static void wait(MPI_Request* req, MPI_Status * status);