Loading...
Searching...
No Matches
UPstream::Request Class Reference

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

#include <UPstream.H>

Public Types

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

Public Member Functions

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

Detailed Description

An opaque wrapper for MPI_Request with a vendor-independent representation without 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 2918 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 2927 of file UPstream.H.

Constructor & Destructor Documentation

◆ Request() [1/5]

Request ( const Request & )
defaultnoexcept

Copy construct.

References Request().

Referenced by operator!=(), operator=(), operator=(), operator==(), Request(), Request(), Request(), and Request().

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

◆ Request() [2/5]

Request ( Request && )
defaultnoexcept

Move construct.

References Foam::noexcept, and Request().

Here is the call graph for this function:

◆ Request() [3/5]

Request ( )
noexcept

Default construct as MPI_REQUEST_NULL.

Definition at line 25 of file UPstreamRequest.C.

References Foam::noexcept, Request(), and UPstream::UPstream().

Here is the call graph for this function:

◆ Request() [4/5]

Request ( const void * p)
inlineexplicitnoexcept

Construct from MPI_Request (as pointer type).

Definition at line 2993 of file UPstream.H.

References Foam::noexcept, p, and Request().

Here is the call graph for this function:

◆ Request() [5/5]

Request ( value_type val)
inlineexplicitnoexcept

Construct from MPI_Request (as integer type).

Definition at line 3001 of file UPstream.H.

References Foam::noexcept.

Member Function Documentation

◆ operator=() [1/2]

Request & operator= ( const Request & )
defaultnoexcept

Copy assignment.

References Foam::noexcept, and Request().

Here is the call graph for this function:

◆ operator=() [2/2]

Request & operator= ( Request && )
defaultnoexcept

Move assignment.

References Foam::noexcept, and Request().

Here is the call graph for this function:

◆ operator==()

bool operator== ( const Request & rhs) const
inlinenoexcept

Test for equality.

Definition at line 2969 of file UPstream.H.

References Foam::noexcept, Request(), and Foam::rhs().

Here is the call graph for this function:

◆ operator!=()

bool operator!= ( const Request & rhs) const
inlinenoexcept

Test for inequality.

Definition at line 2977 of file UPstream.H.

References Request(), and Foam::rhs().

Here is the call graph for this function:

◆ value()

value_type value ( ) const
inlinenoexcept

Return raw value.

Definition at line 3014 of file UPstream.H.

References Foam::noexcept.

◆ pointer()

const void * pointer ( ) const
inlinenoexcept

Return as pointer value.

Definition at line 3019 of file UPstream.H.

References Foam::noexcept.

◆ good()

bool good ( ) const
noexcept

True if not equal to MPI_REQUEST_NULL.

Definition at line 33 of file UPstreamRequest.C.

References Foam::noexcept.

Referenced by active().

Here is the caller graph for this function:

◆ reset()

void reset ( )
noexcept

Reset to default constructed value (MPI_REQUEST_NULL).

Definition at line 39 of file UPstreamRequest.C.

References Foam::noexcept.

◆ active()

bool active ( ) const
inlinenoexcept

True if request is active (!= MPI_REQUEST_NULL) Same as good(). Same as calling UPstream::activeRequest().

Definition at line 3041 of file UPstream.H.

References active(), good(), and Foam::noexcept.

Referenced by active().

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

◆ finished()

bool finished ( )
inline

Same as calling UPstream::finishedRequest().

Uses MPI_Test()

Definition at line 3048 of file UPstream.H.

References UPstream::finishedRequest().

Here is the call graph for this function:

◆ wait()

void wait ( )
inline

Same as calling UPstream::waitRequest().

Uses MPI_Wait()

Definition at line 3055 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:

◆ cancel()

void cancel ( )
inline

Same as calling UPstream::cancelRequest().

Uses MPI_Cancel(), MPI_Request_free()

Definition at line 3065 of file UPstream.H.

References UPstream::cancelRequest().

Here is the call graph for this function:

◆ free()

void free ( )
inline

Same as calling UPstream::freeRequest().

Uses MPI_Request_free()

Definition at line 3072 of file UPstream.H.

References UPstream::freeRequest().

Here is the call graph for this function:

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