| Home | Libraries | People | FAQ | More

## Class request

boost::mpi::request — A request for a non-blocking send or receive.

## Synopsis

    class request {
    public:
      // construct/copy/destruct
      request();

      // public member functions
      status wait() ;
      optional< status > test() ;
      void cancel() ;
    };

## Description

This structure contains information about a non-blocking send or receive and will be returned from `isend` or `irecv`, respectively.

### `request` public construct/copy/destruct

1.     request();

   Constructs a NULL request.

### `request` public member functions

1.     status wait() ;

   Wait until the communication associated with this request has completed, then return a `status` object describing the communication.

2.     optional< status > test() ;

   Determine whether the communication associated with this request has completed successfully. If so, returns the `status` object describing the communication. Otherwise, returns an empty `optional<>` to indicate that the communication has not completed yet. Note that once `test()` returns a `status` object, the request has completed and `wait()` should not be called.

3.     void cancel() ;

   Cancel a pending communication, assuming it has not already been completed.