| Home | Libraries | People | FAQ | More

## Class request

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

## Synopsis

    // In header: <boost/mpi/request.hpp>

    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.