edu.rit.pj
Class CommRequest

java.lang.Object
  extended by edu.rit.pj.CommRequest

public class CommRequest
extends Object

Class CommRequest provides an object for doing a non-blocking message passing operation in a PJ cluster parallel program. A non-blocking message passing operation in class Comm immediately returns a CommRequest object while performing the message passing operation in a separate thread. This allows the calling thread to do other work while the message passing operation is in progress. When the calling thread needs to wait for the message passing operation to finish, the calling thread calls the CommRequest object's waitForFinish() method.


Constructor Summary
CommRequest()
          Construct a new CommRequest object.
 
Method Summary
 boolean isFinished()
          Determine if the message passing operation associated with this CommRequest object has finished.
 CommStatus waitForFinish()
          Wait for the message passing operation associated with this CommRequest object to finish.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CommRequest

public CommRequest()
Construct a new CommRequest object.

Method Detail

isFinished

public boolean isFinished()
                   throws IOException
Determine if the message passing operation associated with this CommRequest object has finished.

Note: If the isFinished() method is called on a newly-created CommRequest object that has not been passed to or returned from a communicator's non-blocking send or receive method, the isFinished() method immediately returns true.

Returns:
False if the message passing operation has not finished, true if the message passing operation has finished successfully.
Throws:
IOException - Thrown if the message passing operation has finished and an I/O error occurred.

waitForFinish

public CommStatus waitForFinish()
                         throws IOException
Wait for the message passing operation associated with this CommRequest object to finish. If the message passing operation involved a receive, a CommStatus object is returned giving the results of the receive, otherwise null is returned.

For a receive operation, the returned status object gives the actual rank of the process that sent the message, the actual message tag that was received, and the actual number of data items in the message. If the actual number of data items in the message is less than the length of the receive buffer, nothing is stored into the extra data items at the end of the buffer. If the actual number of data items in the message is greater than the length of the receive buffer, the extra data items at the end of the message are discarded.

Note: If the waitForFinish() method is called on a newly-created CommRequest object that has not been passed to or returned from a communicator's non-blocking send or receive method, the waitForFinish() method immediately returns null.

Returns:
Status object for a receive operation, otherwise null.
Throws:
IOException - Thrown if an I/O error occurred.


Copyright © 2005-2012 by Alan Kaminsky. All rights reserved. Send comments to ark­@­cs.rit.edu.