X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3def2297f6cb436bc6cc26e04a3ac453fdaf3b9e..09304e54d26cb2a5b0d3f67bd31f95c982d7c299:/src/smpi/smpi_request.hpp diff --git a/src/smpi/smpi_request.hpp b/src/smpi/smpi_request.hpp index 17d43f78ba..06e28da71d 100644 --- a/src/smpi/smpi_request.hpp +++ b/src/smpi/smpi_request.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010, 2013-2015. The SimGrid Team. +/* Copyright (c) 2010, 2013-2017. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -12,7 +12,7 @@ namespace simgrid{ namespace smpi{ -class Request { +class Request : public F2C{ private : void *buf_; /* in the case of non-contiguous memory the user address should be keep @@ -39,9 +39,11 @@ class Request { int refcount_; MPI_Op op_; public: - Request(); + Request()=default; Request(void *buf, int count, MPI_Datatype datatype, int src, int dst, int tag, MPI_Comm comm, unsigned flags); MPI_Comm comm(); + size_t size(); + size_t real_size(); int src(); int dst(); int tag(); @@ -51,7 +53,7 @@ class Request { void start(); static void finish_wait(MPI_Request* request, MPI_Status * status); - static void unuse(MPI_Request* request); + static void unref(MPI_Request* request); static void wait(MPI_Request* req, MPI_Status * status); static MPI_Request send_init(void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm); static MPI_Request isend_init(void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm); @@ -88,8 +90,14 @@ class Request { static int match_send(void* a, void* b,smx_activity_t ignored); static int match_recv(void* a, void* b,smx_activity_t ignored); + + int add_f(); + static void free_f(int id); + static Request* f2c(int); + }; + } }