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
23 class Win {
24 #if 0
25
26 #endif
27 friend class MPI::Comm;
28 friend class MPI::Request;
29
30 public:
31 #if 0
32
33
34 Win() { }
35 virtual ~Win() { }
36
37
38
39 Win(const Win& data) : pmpi_win(data.pmpi_win) { }
40
41 Win(MPI_Win i) : pmpi_win(i) { }
42
43 Win& operator=(const Win& data) {
44 pmpi_win = data.pmpi_win; return *this; }
45
46
47
48
49 Win& operator= (const MPI_Win &i) {
50 pmpi_win = i; return *this; }
51 operator MPI_Win () const { return pmpi_win; }
52
53 operator const PMPI::Win&() const { return pmpi_win; }
54
55 #else
56
57 Win() : mpi_win(MPI_WIN_NULL) { }
58
59 Win(const Win& data) : mpi_win(data.mpi_win) { }
60
61 Win(MPI_Win i) : mpi_win(i) { }
62
63 virtual ~Win() { }
64
65 Win& operator=(const Win& data) {
66 mpi_win = data.mpi_win; return *this; }
67
68
69
70
71 Win& operator= (const MPI_Win &i) {
72 mpi_win = i; return *this; }
73 operator MPI_Win () const { return mpi_win; }
74
75
76 #endif
77
78
79
80
81 typedef int Copy_attr_function(const Win& oldwin, int win_keyval,
82 void* extra_state, void* attribute_val_in,
83 void* attribute_val_out, bool& flag);
84
85 typedef int Delete_attr_function(Win& win, int win_keyval,
86 void* attribute_val, void* extra_state);
87
88 typedef void Errhandler_function(Win &, int *, ... );
89 typedef Errhandler_function Errhandler_fn
90 __mpi_interface_deprecated__("MPI::Win::Errhandler_fn was deprecated in MPI-2.2; use MPI::Win::Errhandler_function instead");
91
92
93
94
95 static MPI::Errhandler Create_errhandler(Errhandler_function* function);
96
97 virtual void Set_errhandler(const MPI::Errhandler& errhandler) const;
98
99 virtual MPI::Errhandler Get_errhandler() const;
100
101
102
103
104 virtual void Accumulate(const void* origin_addr, int origin_count,
105 const MPI::Datatype& origin_datatype,
106 int target_rank, MPI::Aint target_disp,
107 int target_count,
108 const MPI::Datatype& target_datatype,
109 const MPI::Op& op) const;
110
111 virtual void Complete() const;
112
113 static Win Create(const void* base, MPI::Aint size, int disp_unit,
114 const MPI::Info& info, const MPI::Intracomm& comm);
115
116 virtual void Fence(int assert) const;
117
118 virtual void Free();
119
120 virtual void Get(const void *origin_addr, int origin_count,
121 const MPI::Datatype& origin_datatype, int target_rank,
122 MPI::Aint target_disp, int target_count,
123 const MPI::Datatype& target_datatype) const;
124
125 virtual MPI::Group Get_group() const;
126
127 virtual void Lock(int lock_type, int rank, int assert) const;
128
129 virtual void Post(const MPI::Group& group, int assert) const;
130
131 virtual void Put(const void* origin_addr, int origin_count,
132 const MPI::Datatype& origin_datatype, int target_rank,
133 MPI::Aint target_disp, int target_count,
134 const MPI::Datatype& target_datatype) const;
135
136 virtual void Start(const MPI::Group& group, int assert) const;
137
138 virtual bool Test() const;
139
140 virtual void Unlock(int rank) const;
141
142 virtual void Wait() const;
143
144
145
146
147
148 virtual void Call_errhandler(int errorcode) const;
149
150
151
152
153 static int Create_keyval(Copy_attr_function* win_copy_attr_fn,
154 Delete_attr_function* win_delete_attr_fn,
155 void* extra_state);
156 static int Create_keyval(MPI_Win_copy_attr_function* win_copy_attr_fn,
157 MPI_Win_delete_attr_function* win_delete_attr_fn,
158 void* extra_state);
159 static int Create_keyval(Copy_attr_function* win_copy_attr_fn,
160 MPI_Win_delete_attr_function* win_delete_attr_fn,
161 void* extra_state);
162 static int Create_keyval(MPI_Win_copy_attr_function* win_copy_attr_fn,
163 Delete_attr_function* win_delete_attr_fn,
164 void* extra_state);
165
166 protected:
167
168
169 static int do_create_keyval(MPI_Win_copy_attr_function* c_copy_fn,
170 MPI_Win_delete_attr_function* c_delete_fn,
171 Copy_attr_function* cxx_copy_fn,
172 Delete_attr_function* cxx_delete_fn,
173 void* extra_state, int &keyval);
174
175 public:
176 virtual void Delete_attr(int win_keyval);
177
178 static void Free_keyval(int& win_keyval);
179
180
181 bool Get_attr(const Win& win, int win_keyval,
182 void* attribute_val) const;
183
184
185 bool Get_attr(int win_keyval, void* attribute_val) const;
186
187 virtual void Get_name(char* win_name, int& resultlen) const;
188
189 virtual void Set_attr(int win_keyval, const void* attribute_val);
190
191 virtual void Set_name(const char* win_name);
192
193
194
195 struct keyval_intercept_data_t {
196 MPI_Win_copy_attr_function *c_copy_fn;
197 MPI_Win_delete_attr_function *c_delete_fn;
198 Copy_attr_function* cxx_copy_fn;
199 Delete_attr_function* cxx_delete_fn;
200 void *extra_state;
201 };
202
203
204 static opal_mutex_t cxx_extra_states_lock;
205
206 protected:
207 #if 0
208 PMPI::Win pmpi_win;
209 #else
210 MPI_Win mpi_win;
211 #endif
212 };