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 };