X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3def2297f6cb436bc6cc26e04a3ac453fdaf3b9e..22cae46149e1fb4988ad9e46060c3e7ecd4e0e44:/src/smpi/smpi_request.hpp diff --git a/src/smpi/smpi_request.hpp b/src/smpi/smpi_request.hpp index 17d43f78ba..f9c8446c94 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 @@ -7,12 +7,12 @@ #ifndef SMPI_REQUEST_HPP_INCLUDED #define SMPI_REQUEST_HPP_INCLUDED -#include "private.h" +#include "src/smpi/smpi_f2c.hpp" 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); + }; + } }