Teuchos Package Browser (Single Doxygen Collection) Version of the Day
Public Member Functions | Private Attributes
Teuchos::MpiCommRequestBase< OrdinalType > Class Template Reference

Base class MPI implementation of CommRequest. More...

#include <Teuchos_DefaultMpiComm.hpp>

Inheritance diagram for Teuchos::MpiCommRequestBase< OrdinalType >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 MpiCommRequestBase ()
 Default constructor.
 MpiCommRequestBase (MPI_Request rawMpiRequest)
 Constructor (from a raw MPI_Request).
MPI_Request releaseRawMpiRequest ()
 Return and relinquish ownership of the raw MPI_Request.
bool isNull () const
 Whether the raw MPI_Request is MPI_REQUEST_NULL.
RCP< CommStatus< OrdinalType > > wait ()
 Wait on this communication request to complete.
RCP< CommStatus< OrdinalType > > cancel ()
 Cancel the communication request, and return its status.
virtual ~MpiCommRequestBase ()
 Destructor; cancels the request if it is still pending.

Private Attributes

MPI_Request rawMpiRequest_
 The raw MPI request (an opaque object).

Detailed Description

template<class OrdinalType>
class Teuchos::MpiCommRequestBase< OrdinalType >

Base class MPI implementation of CommRequest.

Template Parameters:
OrdinalTypeSame as the template parameter of Comm.

This class wraps MPI_Request, which is MPI's reification of a nonblocking communication operation.

Users would not normally create an instance of this class. Calls to nonblocking communication operations (such as ireceive() or isend()) return a pointer to a CommRequest. If the Comm is an MpiComm, then the returned CommRequest is an MpiCommRequest.

Users might wish to create an MpiCommRequest directly if they want to encapsulate an MPI_Request returned by an external library or by their own code.

Definition at line 182 of file Teuchos_DefaultMpiComm.hpp.


Constructor & Destructor Documentation

template<class OrdinalType>
Teuchos::MpiCommRequestBase< OrdinalType >::MpiCommRequestBase ( ) [inline]

Default constructor.

Definition at line 185 of file Teuchos_DefaultMpiComm.hpp.

template<class OrdinalType>
Teuchos::MpiCommRequestBase< OrdinalType >::MpiCommRequestBase ( MPI_Request  rawMpiRequest) [inline]

Constructor (from a raw MPI_Request).

Definition at line 190 of file Teuchos_DefaultMpiComm.hpp.

template<class OrdinalType>
virtual Teuchos::MpiCommRequestBase< OrdinalType >::~MpiCommRequestBase ( ) [inline, virtual]

Destructor; cancels the request if it is still pending.

Definition at line 260 of file Teuchos_DefaultMpiComm.hpp.


Member Function Documentation

template<class OrdinalType>
MPI_Request Teuchos::MpiCommRequestBase< OrdinalType >::releaseRawMpiRequest ( ) [inline]

Return and relinquish ownership of the raw MPI_Request.

"Relinquish ownership" means that this object sets its raw MPI_Request to MPI_REQUEST_NULL, but returns the original MPI_Request. This effectively gives the caller ownership of the raw MPI_Request. This prevents hanging requests.

Definition at line 201 of file Teuchos_DefaultMpiComm.hpp.

template<class OrdinalType>
bool Teuchos::MpiCommRequestBase< OrdinalType >::isNull ( ) const [inline]

Whether the raw MPI_Request is MPI_REQUEST_NULL.

Definition at line 209 of file Teuchos_DefaultMpiComm.hpp.

template<class OrdinalType>
RCP<CommStatus<OrdinalType> > Teuchos::MpiCommRequestBase< OrdinalType >::wait ( ) [inline, virtual]

Wait on this communication request to complete.

This is a blocking operation. The user is responsible for avoiding deadlock. (For example, a receive must have a matching send, otherwise a wait on the receive will wait forever.)

Implements Teuchos::CommRequest< OrdinalType >.

Definition at line 218 of file Teuchos_DefaultMpiComm.hpp.

template<class OrdinalType>
RCP<CommStatus<OrdinalType> > Teuchos::MpiCommRequestBase< OrdinalType >::cancel ( ) [inline]

Cancel the communication request, and return its status.

If this request is invalid or has already been invalidated, this method returns null.

Definition at line 235 of file Teuchos_DefaultMpiComm.hpp.


Member Data Documentation

template<class OrdinalType>
MPI_Request Teuchos::MpiCommRequestBase< OrdinalType >::rawMpiRequest_ [private]

The raw MPI request (an opaque object).

Definition at line 289 of file Teuchos_DefaultMpiComm.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines