36 Request(
const PMPI::Request& r) : pmpi_request(r) { }
41 pmpi_request = r.pmpi_request;
return *
this; }
44 bool operator== (
const Request &a)
45 {
return (
bool)(pmpi_request == a.pmpi_request); }
46 bool operator!= (
const Request &a)
47 {
return (
bool)!(*
this == a); }
51 pmpi_request = i;
return *
this; }
53 operator MPI_Request ()
const {
return pmpi_request; }
55 operator const PMPI::Request&()
const {
return pmpi_request; }
60 Request() : mpi_request(MPI_REQUEST_NULL) { }
68 mpi_request = r.mpi_request;
return *
this; }
71 bool operator== (
const Request &a)
72 {
return (
bool)(mpi_request == a.mpi_request); }
73 bool operator!= (
const Request &a)
74 {
return (
bool)!(*
this == a); }
78 mpi_request = i;
return *
this; }
79 operator MPI_Request ()
const {
return mpi_request; }
88 virtual void Wait(
Status &status);
92 virtual bool Test(
Status &status);
96 virtual void Free(
void);
98 static int Waitany(
int count,
Request array[],
Status& status);
100 static int Waitany(
int count,
Request array[]);
102 static bool Testany(
int count,
Request array[],
int& index,
Status& status);
104 static bool Testany(
int count,
Request array[],
int& index);
106 static void Waitall(
int count,
Request req_array[],
Status stat_array[]);
108 static void Waitall(
int count,
Request req_array[]);
110 static bool Testall(
int count,
Request req_array[],
Status stat_array[]);
112 static bool Testall(
int count,
Request req_array[]);
114 static int Waitsome(
int incount,
Request req_array[],
115 int array_of_indices[],
Status stat_array[]) ;
117 static int Waitsome(
int incount,
Request req_array[],
118 int array_of_indices[]);
120 static int Testsome(
int incount,
Request req_array[],
121 int array_of_indices[],
Status stat_array[]);
123 static int Testsome(
int incount,
Request req_array[],
124 int array_of_indices[]);
126 virtual void Cancel(
void)
const;
128 virtual bool Get_status(
Status& status)
const;
130 virtual bool Get_status()
const;
140 PMPI::Request pmpi_request;
158 Request((
const PMPI::Request&)r),
166 Request::operator=(r);
167 pmpi_request = (PMPI::Prequest)r;
return *
this; }
170 Request::operator=(r);
171 pmpi_request = r.pmpi_request;
return *
this; }
180 mpi_request = r;
return *
this; }
183 mpi_request = r.mpi_request;
return *
this; }
186 virtual void Start();
188 static void Startall(
int count,
Prequest array_of_requests[]);
192 PMPI::Prequest pmpi_request;
202 typedef int Query_function(
void *,
Status&);
203 typedef int Free_function(
void *);
204 typedef int Cancel_function(
void *,
bool);
212 mpi_request = req;
return(*
this);
216 mpi_request = req.mpi_request;
return(*
this);
219 static Grequest Start(Query_function *, Free_function *,
220 Cancel_function *,
void *);
222 virtual void Complete();
231 Grequest::Query_function *id_cxx_query_fn;
232 Grequest::Free_function *id_cxx_free_fn;
233 Grequest::Cancel_function *id_cxx_cancel_fn;
Definition: request.h:200
Definition: request.h:229
Main top-level request struct definition.
Definition: request.h:100
Definition: request.h:146