UPstream::Request Class Reference

An opaque wrapper for MPI_Request with a vendor-independent representation independent of any <mpi.h> header. More...

Public Types

typedef std::intptr_t value_type
 Storage for MPI_Request (as integer or pointer) More...
 

Public Member Functions

 Request (const Request &) noexcept=default
 Copy construct. More...
 
 Request (Request &&) noexcept=default
 Move construct. More...
 
Requestoperator= (const Request &) noexcept=default
 Copy assignment. More...
 
Requestoperator= (Request &&) noexcept=default
 Move assignment. More...
 
bool operator== (const Request &rhs) const noexcept
 Test for equality. More...
 
bool operator!= (const Request &rhs) const noexcept
 Test for inequality. More...
 
 Request () noexcept
 Default construct as MPI_REQUEST_NULL. More...
 
 Request (const void *p) noexcept
 Construct from MPI_Request (as pointer type) More...
 
 Request (value_type val) noexcept
 Construct from MPI_Request (as integer type) More...
 
value_type value () const noexcept
 Return raw value. More...
 
const void * pointer () const noexcept
 Return as pointer value. More...
 
bool good () const noexcept
 True if not equal to MPI_REQUEST_NULL. More...
 
void reset () noexcept
 Reset to default constructed value (MPI_REQUEST_NULL) More...
 
void cancel ()
 Same as calling UPstream::cancelRequest() More...
 
void free ()
 Same as calling UPstream::freeRequest() More...
 
bool finished ()
 Same as calling UPstream::finishedRequest() More...
 
void wait ()
 Same as calling UPstream::waitRequest() More...
 

Detailed Description

An opaque wrapper for MPI_Request with a vendor-independent representation independent of any <mpi.h> header.

The MPI standard states that MPI_Request is always an opaque object. Generally it is either an integer (eg, mpich) or a pointer (eg, openmpi).

Definition at line 1573 of file UPstream.H.

Member Typedef Documentation

◆ value_type

typedef std::intptr_t value_type

Storage for MPI_Request (as integer or pointer)

Definition at line 1582 of file UPstream.H.

Constructor & Destructor Documentation

◆ Request() [1/5]

Request ( const Request )
defaultnoexcept

Copy construct.

◆ Request() [2/5]

Request ( Request &&  )
defaultnoexcept

Move construct.

◆ Request() [3/5]

Request ( )
noexcept

Default construct as MPI_REQUEST_NULL.

Definition at line 25 of file UPstreamRequest.C.

◆ Request() [4/5]

Request ( const void *  p)
inlineexplicitnoexcept

Construct from MPI_Request (as pointer type)

Definition at line 1648 of file UPstream.H.

◆ Request() [5/5]

Request ( value_type  val)
inlineexplicitnoexcept

Construct from MPI_Request (as integer type)

Definition at line 1656 of file UPstream.H.

Member Function Documentation

◆ operator=() [1/2]

Request& operator= ( const Request )
defaultnoexcept

Copy assignment.

◆ operator=() [2/2]

Request& operator= ( Request &&  )
defaultnoexcept

Move assignment.

◆ operator==()

bool operator== ( const Request rhs) const
inlinenoexcept

Test for equality.

Definition at line 1624 of file UPstream.H.

◆ operator!=()

bool operator!= ( const Request rhs) const
inlinenoexcept

Test for inequality.

Definition at line 1632 of file UPstream.H.

◆ value()

value_type value ( ) const
inlinenoexcept

Return raw value.

Definition at line 1667 of file UPstream.H.

◆ pointer()

const void* pointer ( ) const
inlinenoexcept

Return as pointer value.

Definition at line 1672 of file UPstream.H.

◆ good()

bool good ( ) const
noexcept

True if not equal to MPI_REQUEST_NULL.

Definition at line 33 of file UPstreamRequest.C.

◆ reset()

void reset ( )
noexcept

Reset to default constructed value (MPI_REQUEST_NULL)

Definition at line 39 of file UPstreamRequest.C.

◆ cancel()

void cancel ( )
inline

Same as calling UPstream::cancelRequest()

Definition at line 1690 of file UPstream.H.

References UPstream::cancelRequest().

Here is the call graph for this function:

◆ free()

void free ( )
inline

Same as calling UPstream::freeRequest()

Definition at line 1695 of file UPstream.H.

References UPstream::freeRequest().

Here is the call graph for this function:

◆ finished()

bool finished ( )
inline

Same as calling UPstream::finishedRequest()

Definition at line 1700 of file UPstream.H.

References UPstream::finishedRequest().

Here is the call graph for this function:

◆ wait()

void wait ( )
inline

Same as calling UPstream::waitRequest()

Definition at line 1705 of file UPstream.H.

References UPstream::waitRequest().

Referenced by PPCG::scalarSolveCG().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: