This source file includes following definitions.
- __mpi_interface_deprecated__
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 class Comm_Null {
23 #if 0
24
25 #endif
26 public:
27
28 #if 0
29
30
31 inline Comm_Null() { }
32
33 inline Comm_Null(const Comm_Null& data) : pmpi_comm(data.pmpi_comm) { }
34
35 inline Comm_Null(MPI_Comm data) : pmpi_comm(data) { }
36
37 inline Comm_Null(const PMPI::Comm_Null& data) : pmpi_comm(data) { }
38
39
40 virtual inline ~Comm_Null() { }
41
42 inline Comm_Null& operator=(const Comm_Null& data) {
43 pmpi_comm = data.pmpi_comm;
44 return *this;
45 }
46
47
48 inline bool operator==(const Comm_Null& data) const {
49 return (bool) (pmpi_comm == data.pmpi_comm); }
50
51 inline bool operator!=(const Comm_Null& data) const {
52 return (bool) (pmpi_comm != data.pmpi_comm);}
53
54
55 inline operator MPI_Comm() const { return pmpi_comm; }
56
57 inline operator const PMPI::Comm_Null&() const { return pmpi_comm; }
58
59 #else
60
61
62 inline Comm_Null() : mpi_comm(MPI_COMM_NULL) { }
63
64 inline Comm_Null(const Comm_Null& data) : mpi_comm(data.mpi_comm) { }
65
66 inline Comm_Null(MPI_Comm data) : mpi_comm(data) { }
67
68
69 virtual inline ~Comm_Null() { }
70
71
72
73 inline bool operator==(const Comm_Null& data) const {
74 return (bool) (mpi_comm == data.mpi_comm); }
75
76 inline bool operator!=(const Comm_Null& data) const {
77 return (bool) !(*this == data);}
78
79
80 inline operator MPI_Comm() const { return mpi_comm; }
81
82 #endif
83
84
85 protected:
86
87 #if 0
88 PMPI::Comm_Null pmpi_comm;
89 #else
90 MPI_Comm mpi_comm;
91 #endif
92
93
94 };
95
96
97 class Comm : public Comm_Null {
98 public:
99
100 typedef void Errhandler_function(Comm&, int*, ...);
101 typedef Errhandler_function Errhandler_fn
102 __mpi_interface_deprecated__("MPI::Comm::Errhandler_fn was deprecated in MPI-2.2; use MPI::Comm::Errhandler_function instead");
103 typedef int Copy_attr_function(const Comm& oldcomm, int comm_keyval,
104 void* extra_state, void* attribute_val_in,
105 void* attribute_val_out,
106 bool& flag);
107 typedef int Delete_attr_function(Comm& comm, int comm_keyval,
108 void* attribute_val,
109 void* extra_state);
110 #if !0
111 #define _MPI2CPP_ERRHANDLERFN_ Errhandler_function
112 #define _MPI2CPP_COPYATTRFN_ Copy_attr_function
113 #define _MPI2CPP_DELETEATTRFN_ Delete_attr_function
114 #endif
115
116
117 Comm();
118
119
120 Comm(const Comm_Null& data);
121
122 #if 0
123 Comm(const Comm& data) :
124 Comm_Null(data),
125 pmpi_comm((const PMPI::Comm&) data) { }
126
127
128 Comm(MPI_Comm data) : Comm_Null(data), pmpi_comm(data) { }
129
130 Comm(const PMPI::Comm& data) :
131 Comm_Null((const PMPI::Comm_Null&)data),
132 pmpi_comm(data) { }
133
134 operator const PMPI::Comm&() const { return pmpi_comm; }
135
136
137 Comm& operator=(const Comm& data) {
138 this->Comm_Null::operator=(data);
139 pmpi_comm = data.pmpi_comm;
140 return *this;
141 }
142 Comm& operator=(const Comm_Null& data) {
143 this->Comm_Null::operator=(data);
144 MPI_Comm tmp = data;
145 pmpi_comm = tmp;
146 return *this;
147 }
148
149 Comm& operator=(const MPI_Comm& data) {
150 this->Comm_Null::operator=(data);
151 pmpi_comm = data;
152 return *this;
153 }
154
155 #else
156 Comm(const Comm& data) : Comm_Null(data.mpi_comm) { }
157
158 Comm(MPI_Comm data) : Comm_Null(data) { }
159 #endif
160
161
162
163
164
165
166 virtual void Send(const void *buf, int count,
167 const Datatype & datatype, int dest, int tag) const;
168
169 virtual void Recv(void *buf, int count, const Datatype & datatype,
170 int source, int tag, Status & status) const;
171
172
173 virtual void Recv(void *buf, int count, const Datatype & datatype,
174 int source, int tag) const;
175
176 virtual void Bsend(const void *buf, int count,
177 const Datatype & datatype, int dest, int tag) const;
178
179 virtual void Ssend(const void *buf, int count,
180 const Datatype & datatype, int dest, int tag) const ;
181
182 virtual void Rsend(const void *buf, int count,
183 const Datatype & datatype, int dest, int tag) const;
184
185 virtual Request Isend(const void *buf, int count,
186 const Datatype & datatype, int dest, int tag) const;
187
188 virtual Request Ibsend(const void *buf, int count, const
189 Datatype & datatype, int dest, int tag) const;
190
191 virtual Request Issend(const void *buf, int count,
192 const Datatype & datatype, int dest, int tag) const;
193
194 virtual Request Irsend(const void *buf, int count,
195 const Datatype & datatype, int dest, int tag) const;
196
197 virtual Request Irecv(void *buf, int count,
198 const Datatype & datatype, int source, int tag) const;
199
200 virtual bool Iprobe(int source, int tag, Status & status) const;
201
202 virtual bool Iprobe(int source, int tag) const;
203
204 virtual void Probe(int source, int tag, Status & status) const;
205
206 virtual void Probe(int source, int tag) const;
207
208 virtual Prequest Send_init(const void *buf, int count,
209 const Datatype & datatype, int dest,
210 int tag) const;
211
212 virtual Prequest Bsend_init(const void *buf, int count,
213 const Datatype & datatype, int dest,
214 int tag) const;
215
216 virtual Prequest Ssend_init(const void *buf, int count,
217 const Datatype & datatype, int dest,
218 int tag) const;
219
220 virtual Prequest Rsend_init(const void *buf, int count,
221 const Datatype & datatype, int dest,
222 int tag) const;
223
224 virtual Prequest Recv_init(void *buf, int count,
225 const Datatype & datatype, int source,
226 int tag) const;
227
228 virtual void Sendrecv(const void *sendbuf, int sendcount,
229 const Datatype & sendtype, int dest, int sendtag,
230 void *recvbuf, int recvcount,
231 const Datatype & recvtype, int source,
232 int recvtag, Status & status) const;
233
234 virtual void Sendrecv(const void *sendbuf, int sendcount,
235 const Datatype & sendtype, int dest, int sendtag,
236 void *recvbuf, int recvcount,
237 const Datatype & recvtype, int source,
238 int recvtag) const;
239
240 virtual void Sendrecv_replace(void *buf, int count,
241 const Datatype & datatype, int dest,
242 int sendtag, int source,
243 int recvtag, Status & status) const;
244
245 virtual void Sendrecv_replace(void *buf, int count,
246 const Datatype & datatype, int dest,
247 int sendtag, int source,
248 int recvtag) const;
249
250
251
252
253
254 virtual Group Get_group() const;
255
256 virtual int Get_size() const;
257
258 virtual int Get_rank() const;
259
260 static int Compare(const Comm & comm1, const Comm & comm2);
261
262 virtual Comm& Clone() const = 0;
263
264 virtual void Free(void);
265
266 virtual bool Is_inter() const;
267
268
269
270
271
272
273
274
275
276
277 virtual void
278 Barrier() const;
279
280 virtual void
281 Bcast(void *buffer, int count,
282 const Datatype& datatype, int root) const;
283
284 virtual void
285 Gather(const void *sendbuf, int sendcount,
286 const Datatype & sendtype,
287 void *recvbuf, int recvcount,
288 const Datatype & recvtype, int root) const;
289
290 virtual void
291 Gatherv(const void *sendbuf, int sendcount,
292 const Datatype & sendtype, void *recvbuf,
293 const int recvcounts[], const int displs[],
294 const Datatype & recvtype, int root) const;
295
296 virtual void
297 Scatter(const void *sendbuf, int sendcount,
298 const Datatype & sendtype,
299 void *recvbuf, int recvcount,
300 const Datatype & recvtype, int root) const;
301
302 virtual void
303 Scatterv(const void *sendbuf, const int sendcounts[],
304 const int displs[], const Datatype & sendtype,
305 void *recvbuf, int recvcount,
306 const Datatype & recvtype, int root) const;
307
308 virtual void
309 Allgather(const void *sendbuf, int sendcount,
310 const Datatype & sendtype, void *recvbuf,
311 int recvcount, const Datatype & recvtype) const;
312
313 virtual void
314 Allgatherv(const void *sendbuf, int sendcount,
315 const Datatype & sendtype, void *recvbuf,
316 const int recvcounts[], const int displs[],
317 const Datatype & recvtype) const;
318
319 virtual void
320 Alltoall(const void *sendbuf, int sendcount,
321 const Datatype & sendtype, void *recvbuf,
322 int recvcount, const Datatype & recvtype) const;
323
324 virtual void
325 Alltoallv(const void *sendbuf, const int sendcounts[],
326 const int sdispls[], const Datatype & sendtype,
327 void *recvbuf, const int recvcounts[],
328 const int rdispls[], const Datatype & recvtype) const;
329
330 virtual void
331 Alltoallw(const void *sendbuf, const int sendcounts[],
332 const int sdispls[], const Datatype sendtypes[],
333 void *recvbuf, const int recvcounts[],
334 const int rdispls[], const Datatype recvtypes[]) const;
335
336 virtual void
337 Reduce(const void *sendbuf, void *recvbuf, int count,
338 const Datatype & datatype, const Op & op,
339 int root) const;
340
341
342 virtual void
343 Allreduce(const void *sendbuf, void *recvbuf, int count,
344 const Datatype & datatype, const Op & op) const;
345
346 virtual void
347 Reduce_scatter(const void *sendbuf, void *recvbuf,
348 int recvcounts[],
349 const Datatype & datatype,
350 const Op & op) const;
351
352
353
354
355
356 virtual void Disconnect();
357
358 static Intercomm Get_parent();
359
360 static Intercomm Join(const int fd);
361
362
363
364
365
366 virtual void Get_name(char * comm_name, int& resultlen) const;
367
368 virtual void Set_name(const char* comm_name);
369
370
371
372
373
374 virtual int Get_topology() const;
375
376
377
378
379
380 virtual void Abort(int errorcode);
381
382
383
384
385
386 static Errhandler Create_errhandler(Comm::Errhandler_function* function);
387
388 virtual void Set_errhandler(const Errhandler& errhandler);
389
390 virtual Errhandler Get_errhandler() const;
391
392 void Call_errhandler(int errorcode) const;
393
394
395
396
397
398
399
400
401 static int Create_keyval(Copy_attr_function* comm_copy_attr_fn,
402 Delete_attr_function* comm_delete_attr_fn,
403 void* extra_state);
404 static int Create_keyval(MPI_Comm_copy_attr_function* comm_copy_attr_fn,
405 MPI_Comm_delete_attr_function* comm_delete_attr_fn,
406 void* extra_state);
407 static int Create_keyval(Copy_attr_function* comm_copy_attr_fn,
408 MPI_Comm_delete_attr_function* comm_delete_attr_fn,
409 void* extra_state);
410 static int Create_keyval(MPI_Comm_copy_attr_function* comm_copy_attr_fn,
411 Delete_attr_function* comm_delete_attr_fn,
412 void* extra_state);
413
414 protected:
415 static int do_create_keyval(MPI_Comm_copy_attr_function* c_copy_fn,
416 MPI_Comm_delete_attr_function* c_delete_fn,
417 Copy_attr_function* cxx_copy_fn,
418 Delete_attr_function* cxx_delete_fn,
419 void* extra_state, int &keyval);
420
421 public:
422
423 static void Free_keyval(int& comm_keyval);
424
425 virtual void Set_attr(int comm_keyval, const void* attribute_val) const;
426
427 virtual bool Get_attr(int comm_keyval, void* attribute_val) const;
428
429 virtual void Delete_attr(int comm_keyval);
430
431 static int NULL_COPY_FN(const Comm& oldcomm, int comm_keyval,
432 void* extra_state, void* attribute_val_in,
433 void* attribute_val_out, bool& flag);
434
435 static int DUP_FN(const Comm& oldcomm, int comm_keyval,
436 void* extra_state, void* attribute_val_in,
437 void* attribute_val_out, bool& flag);
438
439 static int NULL_DELETE_FN(Comm& comm, int comm_keyval, void* attribute_val,
440 void* extra_state);
441
442
443 private:
444 #if 0
445 PMPI::Comm pmpi_comm;
446 #endif
447
448 #if ! 0
449 public:
450
451
452
453 struct keyval_intercept_data_t {
454 MPI_Comm_copy_attr_function *c_copy_fn;
455 MPI_Comm_delete_attr_function *c_delete_fn;
456 Copy_attr_function* cxx_copy_fn;
457 Delete_attr_function* cxx_delete_fn;
458 void *extra_state;
459 };
460
461
462 static opal_mutex_t cxx_extra_states_lock;
463 #endif
464
465 };