KaMPIng 0.1.1
Flexible and (near) zero-overhead C++ bindings for MPI
|
Base class for request wrappers. More...
#include <request.hpp>
Public Member Functions | |
RequestBase (RequestBase const &)=delete | |
Copy constructor is deleted because requests should only be moved. | |
RequestBase & | operator= (RequestBase const &)=delete |
Copy assignment operator is deleted because requests should only be moved. | |
RequestBase (RequestBase &&)=default | |
Move constructor. | |
RequestBase & | operator= (RequestBase &&)=default |
Move assignment operator. | |
template<typename StatusParamObjectType = decltype(status(ignore<>))> | |
auto | wait (StatusParamObjectType status_param=kamping::status(ignore<>)) |
Returns when the operation defined by the underlying request completes. If the underlying request was initialized by a non-blocking communication call, it is set to MPI_REQUEST_NULL . | |
bool | is_null () const |
template<typename StatusParamObjectType = decltype(status(ignore<>))> | |
auto | test (StatusParamObjectType status_param=kamping::status(ignore<>)) |
Tests for completion of the underlying request. If the underlying request was initialized by a non-blocking communication call and completes, it is set to MPI_REQUEST_NULL . | |
MPI_Request & | mpi_request () |
MPI_Request const & | mpi_request () const |
template<typename T > | |
bool | operator== (RequestBase< T > const &other) const |
template<typename T > | |
bool | operator!= (RequestBase< T > const &other) const |
Base class for request wrappers.
This class provides the common interface for all request wrappers. It is not intended to be used directly. Instead, use kamping::Request or kamping::PooledRequest or define your own request type, which must implement request_ptr()
.
RequestType | The derived type. |
|
inline |
MPI_REQUEST_NULL
.
|
inline |
|
inline |
|
inline |
true
if the other request wrapper points to a different request.
|
inline |
true
if the other request wrapper points to the same request.
|
inline |
Tests for completion of the underlying request. If the underlying request was initialized by a non-blocking communication call and completes, it is set to MPI_REQUEST_NULL
.
status_param | A parameter created by kamping::status() or kamping::status_out(). Defaults to kamping::status(ignore<>) . |
true
if the underlying request is complete. If status
is kamping::status_out() and owning, returns an std::optional
encapsulating the status in case of completion, std::nullopt
otherwise.
|
inline |
Returns when the operation defined by the underlying request completes. If the underlying request was initialized by a non-blocking communication call, it is set to MPI_REQUEST_NULL
.
status_param | A parameter created by kamping::status() or kamping::status_out(). Defaults to kamping::status(ignore<>) . |
status
is kamping::status_out(), otherwise nothing.