27 friend class MPI::Comm;
28 friend class MPI::Request;
39 Win(
const Win& data) : pmpi_win(data.pmpi_win) { }
43 Win& operator=(
const Win& data) {
44 pmpi_win = data.pmpi_win;
return *
this; }
50 pmpi_win = i;
return *
this; }
51 operator MPI_Win ()
const {
return pmpi_win; }
53 operator const PMPI::Win&()
const {
return pmpi_win; }
57 Win() : mpi_win(MPI_WIN_NULL) { }
59 Win(
const Win& data) : mpi_win(data.mpi_win) { }
65 Win& operator=(
const Win& data) {
66 mpi_win = data.mpi_win;
return *
this; }
72 mpi_win = i;
return *
this; }
73 operator MPI_Win ()
const {
return mpi_win; }
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);
85 typedef int Delete_attr_function(
Win& win,
int win_keyval,
86 void* attribute_val,
void* extra_state);
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");
95 static MPI::Errhandler Create_errhandler(Errhandler_function*
function);
97 virtual void Set_errhandler(
const MPI::Errhandler& errhandler)
const;
99 virtual MPI::Errhandler Get_errhandler()
const;
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,
108 const MPI::Datatype& target_datatype,
109 const MPI::Op& op)
const;
111 virtual void Complete()
const;
113 static Win Create(
const void* base, MPI::Aint size,
int disp_unit,
114 const MPI::Info& info,
const MPI::Intracomm& comm);
116 virtual void Fence(
int assert)
const;
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;
125 virtual MPI::Group Get_group()
const;
127 virtual void Lock(
int lock_type,
int rank,
int assert)
const;
129 virtual void Post(
const MPI::Group& group,
int assert)
const;
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;
136 virtual void Start(
const MPI::Group& group,
int assert)
const;
138 virtual bool Test()
const;
140 virtual void Unlock(
int rank)
const;
142 virtual void Wait()
const;
148 virtual void Call_errhandler(
int errorcode)
const;
153 static int Create_keyval(Copy_attr_function* win_copy_attr_fn,
154 Delete_attr_function* win_delete_attr_fn,
156 static int Create_keyval(MPI_Win_copy_attr_function* win_copy_attr_fn,
157 MPI_Win_delete_attr_function* win_delete_attr_fn,
159 static int Create_keyval(Copy_attr_function* win_copy_attr_fn,
160 MPI_Win_delete_attr_function* win_delete_attr_fn,
162 static int Create_keyval(MPI_Win_copy_attr_function* win_copy_attr_fn,
163 Delete_attr_function* win_delete_attr_fn,
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);
176 virtual void Delete_attr(
int win_keyval);
178 static void Free_keyval(
int& win_keyval);
181 bool Get_attr(
const Win& win,
int win_keyval,
182 void* attribute_val)
const;
185 bool Get_attr(
int win_keyval,
void* attribute_val)
const;
187 virtual void Get_name(
char* win_name,
int& resultlen)
const;
189 virtual void Set_attr(
int win_keyval,
const void* attribute_val);
191 virtual void Set_name(
const char* win_name);
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;
Definition: mutex_unix.h:53