PPL Logo

AmpiRequest Class Reference

Represents an MPI request that has been initiated using Isend, Irecv, Ialltoall, Send_init, etc. More...

#include <ampiimpl.h>

Inheritance diagram for AmpiRequest:

Inheritance graph
[legend]
Collaboration diagram for AmpiRequest:

Collaboration graph
[legend]

Public Member Functions

 AmpiRequest ()
virtual ~AmpiRequest ()
 Close this request (used by free and cancel).
virtual int start (void)
 Activate this persistent request.
virtual CmiBool test (MPI_Status *sts)=0
 Return true if this request is finished (progress).
virtual void complete (MPI_Status *sts)=0
 Completes the operation hanging on the request.
virtual int wait (MPI_Status *sts)=0
 Block until this request is finished, returning a valid MPI error code.
virtual void receive (ampi *ptr, AmpiMsg *msg)=0
virtual void free (void)
 Frees up the request: invalidate it.
bool isValid (void)
virtual int getType (void)=0
 Returns the type of request: 1-PersReq, 2-IReq, 3-ATAReq, 4-SReq, 5-GPUReq.
virtual void pup (PUP::er &p)
virtual void print ()

Data Fields

void * buf
int count
int type
int tag
int src
int comm
void * event

Protected Attributes

bool isvalid

Detailed Description

Represents an MPI request that has been initiated using Isend, Irecv, Ialltoall, Send_init, etc.

Definition at line 534 of file ampiimpl.h.


Constructor & Destructor Documentation

AmpiRequest::AmpiRequest (  )  [inline]

Definition at line 550 of file ampiimpl.h.

virtual AmpiRequest::~AmpiRequest (  )  [inline, virtual]

Close this request (used by free and cancel).

Definition at line 552 of file ampiimpl.h.


Member Function Documentation

virtual int AmpiRequest::start ( void   )  [inline, virtual]

Activate this persistent request.

Only meaningful for persistent requests, other requests just abort.

Reimplemented in PersReq.

Definition at line 557 of file ampiimpl.h.

virtual CmiBool AmpiRequest::test ( MPI_Status sts  )  [pure virtual]

Return true if this request is finished (progress).

Implemented in PersReq, IReq, ATAReq, SReq, and GPUReq.

virtual void AmpiRequest::complete ( MPI_Status sts  )  [pure virtual]

Completes the operation hanging on the request.

Implemented in PersReq, IReq, ATAReq, SReq, and GPUReq.

virtual int AmpiRequest::wait ( MPI_Status sts  )  [pure virtual]

Block until this request is finished, returning a valid MPI error code.

Implemented in PersReq, IReq, ATAReq, SReq, and GPUReq.

Referenced by AMPI_Wait(), and AMPI_Waitall().

virtual void AmpiRequest::receive ( ampi ptr,
AmpiMsg msg 
) [pure virtual]

Implemented in PersReq, IReq, ATAReq, SReq, and GPUReq.

virtual void AmpiRequest::free ( void   )  [inline, virtual]

Frees up the request: invalidate it.

Definition at line 572 of file ampiimpl.h.

References isvalid.

Referenced by AMPI_Alltoall().

bool AmpiRequest::isValid ( void   )  [inline]

Definition at line 573 of file ampiimpl.h.

References isvalid.

virtual int AmpiRequest::getType ( void   )  [pure virtual]

Returns the type of request: 1-PersReq, 2-IReq, 3-ATAReq, 4-SReq, 5-GPUReq.

Implemented in PersReq, IReq, ATAReq, SReq, and GPUReq.

virtual void AmpiRequest::pup ( PUP::er p  )  [inline, virtual]

Reimplemented in PersReq, IReq, ATAReq, and SReq.

Definition at line 579 of file ampiimpl.h.

References buf, comm, count, event, isvalid, p, src, tag, and type.

Referenced by SReq::pup(), ATAReq::pup(), IReq::pup(), and PersReq::pup().

void AmpiRequest::print (  )  [virtual]

Reimplemented in PersReq, IReq, ATAReq, and SReq.

Definition at line 2294 of file ampi.C.

References buf, CmiPrintf(), comm, count, isvalid, src, tag, and type.

Referenced by SReq::print(), ATAReq::print(), IReq::print(), and PersReq::print().


Field Documentation

Definition at line 545 of file ampiimpl.h.

Referenced by pup(), ATAReq::wait(), and PersReq::wait().


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

Generated on Thu May 24 07:56:27 2012 for Charm++ by  doxygen 1.5.5