1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 class Status {
25 #if 0
26
27 #endif
28 friend class MPI::Comm;
29 friend class MPI::Request;
30 friend class MPI::File;
31
32 public:
33 #if 0
34
35
36 Status() { }
37 virtual ~Status() {}
38
39
40 Status(const Status& data) : pmpi_status(data.pmpi_status) { }
41
42 Status(const MPI_Status &i) : pmpi_status(i) { }
43
44 Status& operator=(const Status& data) {
45 pmpi_status = data.pmpi_status; return *this; }
46
47
48
49
50 Status& operator= (const MPI_Status &i) {
51 pmpi_status = i; return *this; }
52 operator MPI_Status () const { return pmpi_status; }
53
54 operator const PMPI::Status&() const { return pmpi_status; }
55
56 #else
57
58 Status() : mpi_status() { }
59
60 Status(const Status& data) : mpi_status(data.mpi_status) { }
61
62 Status(const MPI_Status &i) : mpi_status(i) { }
63
64 virtual ~Status() {}
65
66 Status& operator=(const Status& data) {
67 mpi_status = data.mpi_status; return *this; }
68
69
70
71
72 Status& operator= (const MPI_Status &i) {
73 mpi_status = i; return *this; }
74 operator MPI_Status () const { return mpi_status; }
75
76
77 #endif
78
79
80
81
82
83 virtual int Get_count(const Datatype& datatype) const;
84
85 virtual bool Is_cancelled() const;
86
87 virtual int Get_elements(const Datatype& datatype) const;
88
89
90
91
92 virtual int Get_source() const;
93
94 virtual void Set_source(int source);
95
96 virtual int Get_tag() const;
97
98 virtual void Set_tag(int tag);
99
100 virtual int Get_error() const;
101
102 virtual void Set_error(int error);
103
104 virtual void Set_elements(const MPI::Datatype& datatype, int count);
105
106 virtual void Set_cancelled(bool flag);
107
108 protected:
109 #if 0
110 PMPI::Status pmpi_status;
111 #else
112 MPI_Status mpi_status;
113 #endif
114
115 };