IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
Request.h
Go to the documentation of this file.
1
//
2
// Class Request
3
// A communication request handle for non-blocking communication.
4
//
5
#ifndef IPPL_MPI_REQUEST_H
6
#define IPPL_MPI_REQUEST_H
7
8
#include "
Communicate/Status.h
"
9
10
namespace
ippl
{
11
namespace
mpi
{
12
13
class
Request
{
14
public
:
15
Request
()
16
:
request_m
(MPI_REQUEST_NULL) {}
17
18
~Request
();
19
20
// operator MPI_Request&() noexcept { return request_m; }
21
22
// operator const MPI_Request&() const noexcept { return request_m; }
23
24
operator
MPI_Request*()
noexcept
{
return
&
request_m
; }
25
26
operator
const
MPI_Request*()
const
noexcept
{
return
&
request_m
; }
27
28
bool
completed
();
29
30
void
free
() { MPI_Request_free(&
request_m
); }
31
32
void
wait
() { MPI_Wait(&
request_m
, MPI_STATUS_IGNORE); }
33
34
private
:
35
MPI_Request
request_m
;
36
};
37
}
// namespace mpi
38
}
// namespace ippl
39
40
#endif
Status.h
ippl
Definition
Archive.h:20
ippl::mpi
Definition
Buffers.cpp:28
ippl::mpi::Request::wait
void wait()
Definition
Request.h:32
ippl::mpi::Request::~Request
~Request()
Definition
Request.cpp:10
ippl::mpi::Request::Request
Request()
Definition
Request.h:15
ippl::mpi::Request::free
void free()
Definition
Request.h:30
ippl::mpi::Request::request_m
MPI_Request request_m
Definition
Request.h:35
ippl::mpi::Request::completed
bool completed()
Definition
Request.cpp:16