1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 class Intercomm : public Comm {
  24 #if 0 
  25   
  26 #endif
  27 public:
  28 
  29   
  30   Intercomm() : Comm(MPI_COMM_NULL) { }
  31   
  32   Intercomm(const Comm_Null& data) : Comm(data) { }
  33   
  34   Intercomm(MPI_Comm data) : Comm(data) { }
  35 
  36 #if 0 
  37   
  38   Intercomm(const Intercomm& data) : Comm(data), pmpi_comm(data.pmpi_comm) { }
  39   Intercomm(const PMPI::Intercomm& d) :
  40     Comm((const PMPI::Comm&)d), pmpi_comm(d) { }
  41 
  42   
  43   Intercomm& operator=(const Intercomm& data) {
  44     Comm::operator=(data);
  45     pmpi_comm = data.pmpi_comm; return *this; }
  46   Intercomm& operator=(const Comm_Null& data) {
  47     Comm::operator=(data);
  48     Intercomm& ic = (Intercomm&)data;
  49     pmpi_comm = ic.pmpi_comm; return *this; }
  50   
  51   Intercomm& operator=(const MPI_Comm& data) {
  52     Comm::operator=(data);
  53     pmpi_comm = PMPI::Intercomm(data); return *this; }
  54 #else
  55   
  56   Intercomm(const Intercomm& data) : Comm(data.mpi_comm) { }
  57   
  58   Intercomm& operator=(const Intercomm& data) {
  59     mpi_comm = data.mpi_comm; return *this; }
  60   Intercomm& operator=(const Comm_Null& data) {
  61     mpi_comm = data; return *this; }
  62   
  63   Intercomm& operator=(const MPI_Comm& data) {
  64     mpi_comm = data; return *this; }
  65 
  66 #endif
  67 
  68 
  69   
  70   
  71   
  72 
  73   Intercomm Dup() const;
  74 
  75   virtual Intercomm& Clone() const;
  76 
  77   virtual int Get_remote_size() const;
  78 
  79   virtual Group Get_remote_group() const;
  80 
  81   virtual Intracomm Merge(bool high) const;
  82 
  83   virtual Intercomm Create(const Group& group) const;
  84 
  85   virtual Intercomm Split(int color, int key) const;
  86 
  87 };