Except where specifically noted, all non- static member functions in this annex are virtual. For brevity, the keyword virtual is omitted.
 
 
namespace MPI { 
 
    void Comm::Send(const void* buf, int count, const  
  Datatype& datatype, int dest, int tag) const  
    void Attach_buffer(void* buffer, int size) 
  
    int Detach_buffer(void*& buffer) 
  
 
    Request Comm::Isend(const void* buf, int count, const  
  Datatype& datatype, int dest, int tag) const 
   
    Request Comm::Ibsend(const  
  void* buf, int count, const Datatype& datatype, int dest, int tag) const  
  
    Request Comm::Issend(const void* buf, int count, const  
  Datatype& datatype, int dest, int tag) const 
   
    Request Comm::Irsend(const void* buf, int count, const  
  Datatype& datatype, int dest, int tag) const 
  
    Request Comm::Irecv(void* buf, int count, const  
  Datatype& datatype, int source, int tag) const 
   
 
    void Request::Wait(Status& status) 
  
  
    void Request::Wait() 
  
  
    bool Request::Test(Status& status)  
  
  
    bool Request::Test()  
  
  
    void Request::Free() 
  
    static int Request::Waitany(int count, Request array_of_requests[],  
  Status& status) 
   
  
    static int Request::Waitany(int count,   
  Request array_of_requests[]) 
   
  
    static bool Request::Testany(int count, Request array_of_requests[],  
  int& index, Status& status) 
   
  
    static bool Request::Testany(int count, Request array_of_requests[],  
  int& index) 
   
  
    static void Request::Waitall(int count, Request array_of_requests[],  
  Status array_of_statuses[]) 
   
  
    static void Request::Waitall(int count,   
  Request array_of_requests[]) 
  
  
    static bool Request::Testall(int count, Request array_of_requests[],  
  Status array_of_statuses[]) 
  
  
    static bool Request::Testall(int count,   
  Request array_of_requests[]) 
  
  
    static int Request::Waitsome(int incount, Request array_of_requests[],  
  int array_of_indices[], Status array_of_statuses[]) 
   
  
    static int Request::Waitsome(int incount,   
  Request array_of_requests[], int array_of_indices[]) 
  
  
    static int Request::Testsome(int incount,   
  Request array_of_requests[],  
  int array_of_indices[], Status array_of_statuses[]) 
   
  
    static int Request::Testsome(int incount,   
  Request array_of_requests[],  
  int array_of_indices[]) 
  
  
 
    bool Comm::Iprobe(int source, int tag, Status& status) const 
   
  
    bool Comm::Iprobe(int source, int tag) const 
   
  
    void Comm::Probe(int source, int tag, Status& status) const 
  
  
    void Comm::Probe(int source, int tag) const 
  
  
 
    void Request::Cancel() const 
  
    bool Status::Is_cancelled() const  
  
 
    Prequest Comm::Send_init(const  
  void* buf, int count, const Datatype& datatype, int dest, int tag) const 
  
    Prequest Comm::Bsend_init(const void* buf,   
  int count, const Datatype& datatype, int dest, int tag) const 
   
    Prequest Comm::Ssend_init(const  
  void* buf, int count, const Datatype& datatype, int dest, int tag) const 
  
    Prequest Comm::Rsend_init(const void* buf,   
  int count, const Datatype& datatype, int dest, int tag) const 
   
    Prequest Comm::Recv_init(void* buf, int count, const  
  Datatype& datatype, int source, int tag) const 
  
    void Prequest::Start() 
  
  
    static void Prequest::Startall(int count,   
  Prequest array_of_requests[]) 
  
  
 
    void Comm::Sendrecv(const void *sendbuf, int sendcount, const  
  Datatype& sendtype, int dest, int sendtag, void *recvbuf,  
  int recvcount, const Datatype& recvtype, int source,  
  int recvtag, Status& status) const 
   
  
    void Comm::Sendrecv(const void *sendbuf, int sendcount, const  
  Datatype& sendtype, int dest, int sendtag, void *recvbuf,  
  int recvcount, const Datatype& recvtype, int source,  
  int recvtag) const 
   
  
    void Comm::Sendrecv_replace(void* buf, int count, const  
  Datatype& datatype, int dest, int sendtag, int source,  
  int recvtag, Status& status) const 
   
  
    void Comm::Sendrecv_replace(void* buf, int count, const  
  Datatype& datatype, int dest, int sendtag, int source,  
  int recvtag) const 
   
  
 
    Datatype Datatype::Create_contiguous(int count) const 
  
    Datatype Datatype::Create_vector(int count, int blocklength,   
  int stride) const 
  
 
    Datatype Datatype::Create_indexed(int count,   
  const int array_of_blocklengths[],  
  const int array_of_displacements[]) const 
  
 
    int Datatype::Get_size() const  
  
 
    void Datatype::Commit() 
  
    void Datatype::Free() 
  
    int Status::Get_elements(const Datatype& datatype) const 
  
    void Datatype::Pack(const void* inbuf, int incount,  
  void *outbuf, int outsize, int& position, const Comm &comm)  
  const  
    
    void Datatype::Unpack(const  
  void* inbuf, int insize, void *outbuf, int outcount, int& position,  
  const Comm& comm) const  
  
    int Datatype::Pack_size(int incount, const  
  Comm& comm) const  
  
 
};