public class Comm {
  // Communicator Management
  public int Size() throws MPIException {...}
  public int Rank() throws MPIException {...}
  public Group Group() throws MPIException {...}
                                        // (see ``Group management'')
  public static int Compare(Comm comm1, Comm comm2)
                                            throws MPIException {...}
  public Object clone() {...}
  public void Free() throws MPIException {...}
  public boolean Is_null() {...}
  // Inter-communication
  public boolean Test_inter() throws MPIException {...}
  public Intercomm Create_intercomm(Comm local_comm, int local_leader,
                                    int remote_leader, int tag)
                                             throws MPIException {...}
  // Caching
  public Object Attr_get(int keyval) throws MPIException {...}
  // Blocking Send and Receive operations
  public void Send(Object buf, int offset, int count, 
                   Datatype datatype, int dest, int tag)
                                             throws MPIException {...}
  public Status Recv(Object buf, int offset, int count, 
                     Datatype datatype, int source, int tag)
                                             throws MPIException {...}
  // Communication Modes
  public void Bsend(Object buf, int offset, int count, 
                    Datatype datatype, int dest, int tag)
                                             throws MPIException {...}
  public void Ssend(Object buf, int offset, int count, 
                    Datatype datatype, int dest, int tag) 
                                             throws MPIException {...}
  public void Rsend(Object buf, int offset, int count, 
                    Datatype datatype, int dest, int tag) 
                                             throws MPIException {...}
  // Nonblocking communication
  public Request Isend(Object buf, int offset, int count, 
                       Datatype datatype, int dest, int tag) 
                                             throws MPIException {...}
  public Request Ibsend(Object buf, int offset, int count, 
                        Datatype datatype, int dest, int tag) 
                                             throws MPIException {...}
  public Request Issend(Object buf, int offset, int count, 
                        Datatype datatype, int dest, int tag) 
                                             throws MPIException {...}
  public Request Irsend(Object buf, int offset, int count, 
                        Datatype datatype, int dest, int tag) 
                                             throws MPIException {...}
  public Request Irecv(Object buf, int offset, int count, 
                       Datatype datatype, int source, int tag) 
                                             throws MPIException {...}
  // Probe and cancel
  public Status Iprobe(int source, int tag) throws MPIException {...}
  public Status Probe(int source, int tag) throws MPIException {...}
  // Persistent communication requests
  public Prequest Send_init(Object buf, int offset, int count, 
                            Datatype datatype, int dest, int tag) 
                                            throws MPIException {...}
  public Prequest Bsend_init(Object buf, int offset, int count, 
                             Datatype datatype, int dest, int tag) 
                                            throws MPIException {...}
  public Prequest Ssend_init(Object buf, int offset, int count, 
                             Datatype datatype, int dest, int tag) 
                                            throws MPIException {...}
  public Prequest Rsend_init(Object buf, int offset, int count, 
                             Datatype datatype, int dest, int tag) 
                                            throws MPIException {...}
  public Prequest Recv_init(Object buf, int offset, int count, 
                            Datatype datatype, int source, int tag) 
                                            throws MPIException {...}
  // Send-receive
  public Status Sendrecv(Object sendbuf, int sendoffset,
                         int sendcount, Datatype sendtype,
                         int dest, int sendtag,
                         Object recvbuf, int recvoffset,
                         int recvcount, Datatype recvtype,
                         int source, int recvtag) 
                                            throws MPIException {...}
  public Status Sendrecv_replace(Object buf, int offset,
                                 int count, Datatype datatype,
                                 int dest, int sendtag,
                                 int source, int recvtag) 
                                            throws MPIException {...}
  // Pack and unpack
  public int Pack(Object inbuf, int offset, int incount, 
                  Datatype datatype,
                  byte [] outbuf, int position)
                                            throws MPIException {...}
  public int Unpack(byte [] inbuf, int position,
                    Object outbuf, int offset, int outcount, 
                    Datatype datatype) throws MPIException {...}
  public int Pack_size(int incount, Datatype datatype) 
                                            throws MPIException {...}
  // Process Topologies
  int Topo_test() throws MPIException {...}
  // Environmental Management
  public void Errorhandler_set(Errhandler errhandler)
                                            throws MPIException {...}
  public Errhandler Errorhandler_get() throws MPIException {...}
  void Abort(int errorcode) throws MPIException {...}
  ...
}