32 #if defined(c_plusplus) || defined(__cplusplus)
43 #if OMPI_PROVIDE_MPI_FILE_INTERFACE && !defined(OMPI_IGNORE_CXX_SEEK) & OMPI_WANT_MPI_CXX_SEEK
55 static const int ompi_stdio_seek_set = SEEK_SET;
56 static const int ompi_stdio_seek_cur = SEEK_CUR;
57 static const int ompi_stdio_seek_end = SEEK_END;
67 static const int SEEK_SET = ompi_stdio_seek_set;
68 static const int SEEK_CUR = ompi_stdio_seek_cur;
69 static const int SEEK_END = ompi_stdio_seek_end;
72 #ifdef OPAL_HAVE_SYS_SYNCH_H
77 #include <sys/synch.h>
82 static const int ompi_synch_lock_shared = LOCK_SHARED;
88 static const int LOCK_SHARED = ompi_synch_lock_shared;
97 ompi_mpi_cxx_op_intercept(
void *invec,
void *outvec,
int *len,
103 const char *message);
107 const char *message);
108 #if OMPI_PROVIDE_MPI_FILE_INTERFACE
112 const char *message);
116 enum CommType { eIntracomm, eIntercomm, eCartcomm, eGraphcomm};
119 ompi_mpi_cxx_comm_copy_attr_intercept(
MPI_Comm oldcomm,
int keyval,
120 void *extra_state,
void *attribute_val_in,
121 void *attribute_val_out,
int *flag,
124 ompi_mpi_cxx_comm_delete_attr_intercept(
MPI_Comm comm,
int keyval,
125 void *attribute_val,
void *extra_state);
128 ompi_mpi_cxx_type_copy_attr_intercept(
MPI_Datatype oldtype,
int keyval,
129 void *extra_state,
void *attribute_val_in,
130 void *attribute_val_out,
int *flag);
132 ompi_mpi_cxx_type_delete_attr_intercept(
MPI_Datatype type,
int keyval,
133 void *attribute_val,
void *extra_state);
136 ompi_mpi_cxx_win_copy_attr_intercept(
MPI_Win oldwin,
int keyval,
137 void *extra_state,
void *attribute_val_in,
138 void *attribute_val_out,
int *flag);
140 ompi_mpi_cxx_win_delete_attr_intercept(
MPI_Win win,
int keyval,
141 void *attribute_val,
void *extra_state);
150 ompi_mpi_cxx_grequest_query_fn_intercept(
void *state,
MPI_Status *status);
152 ompi_mpi_cxx_grequest_free_fn_intercept(
void *state);
154 ompi_mpi_cxx_grequest_cancel_fn_intercept(
void *state,
int canceled);
160 #if defined(WIN32) || defined(_WIN32) || defined(WIN64)
161 #define OPAL_INT_TO_BOOL(VALUE) ((VALUE) != 0 ? true : false)
163 #define OPAL_INT_TO_BOOL(VALUE) ((bool)(VALUE))
167 #include "ompi/mpi/cxx/pmpicxx.h"
172 #if ! OMPI_HAVE_CXX_EXCEPTION_SUPPORT
173 extern int mpi_errno;
191 #if OMPI_PROVIDE_MPI_FILE_INTERFACE
195 typedef MPI_Aint Aint;
196 typedef MPI_Fint Fint;
197 typedef MPI_Offset Offset;
199 #ifdef OMPI_BUILDING_CXX_BINDINGS_LIBRARY
200 #include "ompi/mpi/cxx/constants.h"
201 #include "ompi/mpi/cxx/functions.h"
202 #include "ompi/mpi/cxx/datatype.h"
204 #include "openmpi/ompi/mpi/cxx/constants.h"
205 #include "openmpi/ompi/mpi/cxx/functions.h"
206 #include "openmpi/ompi/mpi/cxx/datatype.h"
209 typedef void User_function(
const void* invec,
void* inoutvec,
int len,
215 #ifdef OMPI_BUILDING_CXX_BINDINGS_LIBRARY
216 #include "ompi/mpi/cxx/exception.h"
217 #include "ompi/mpi/cxx/op.h"
218 #include "ompi/mpi/cxx/status.h"
219 #include "ompi/mpi/cxx/request.h"
220 #include "ompi/mpi/cxx/group.h"
221 #include "ompi/mpi/cxx/comm.h"
222 #include "ompi/mpi/cxx/win.h"
223 #if OMPI_PROVIDE_MPI_FILE_INTERFACE
224 #include "ompi/mpi/cxx/file.h"
226 #include "ompi/mpi/cxx/errhandler.h"
227 #include "ompi/mpi/cxx/intracomm.h"
228 #include "ompi/mpi/cxx/topology.h"
229 #include "ompi/mpi/cxx/intercomm.h"
230 #include "ompi/mpi/cxx/info.h"
232 #include "openmpi/ompi/mpi/cxx/exception.h"
233 #include "openmpi/ompi/mpi/cxx/op.h"
234 #include "openmpi/ompi/mpi/cxx/status.h"
235 #include "openmpi/ompi/mpi/cxx/request.h"
236 #include "openmpi/ompi/mpi/cxx/group.h"
237 #include "openmpi/ompi/mpi/cxx/comm.h"
238 #include "openmpi/ompi/mpi/cxx/win.h"
239 #if OMPI_PROVIDE_MPI_FILE_INTERFACE
240 #include "openmpi/ompi/mpi/cxx/file.h"
242 #include "openmpi/ompi/mpi/cxx/errhandler.h"
243 #include "openmpi/ompi/mpi/cxx/intracomm.h"
244 #include "openmpi/ompi/mpi/cxx/topology.h"
245 #include "openmpi/ompi/mpi/cxx/intercomm.h"
246 #include "openmpi/ompi/mpi/cxx/info.h"
250 extern const char ompi_libcxx_version_string[];
254 #include "ompi/mpi/cxx/pop_inln.h"
255 #include "ompi/mpi/cxx/pgroup_inln.h"
256 #include "ompi/mpi/cxx/pstatus_inln.h"
257 #include "ompi/mpi/cxx/prequest_inln.h"
270 #ifdef OMPI_BUILDING_CXX_BINDINGS_LIBRARY
271 #include "ompi/mpi/cxx/datatype_inln.h"
272 #include "ompi/mpi/cxx/functions_inln.h"
273 #include "ompi/mpi/cxx/request_inln.h"
274 #include "ompi/mpi/cxx/comm_inln.h"
275 #include "ompi/mpi/cxx/intracomm_inln.h"
276 #include "ompi/mpi/cxx/topology_inln.h"
277 #include "ompi/mpi/cxx/intercomm_inln.h"
278 #include "ompi/mpi/cxx/group_inln.h"
279 #include "ompi/mpi/cxx/op_inln.h"
280 #include "ompi/mpi/cxx/errhandler_inln.h"
281 #include "ompi/mpi/cxx/status_inln.h"
282 #include "ompi/mpi/cxx/info_inln.h"
283 #include "ompi/mpi/cxx/win_inln.h"
284 #if OMPI_PROVIDE_MPI_FILE_INTERFACE
285 #include "ompi/mpi/cxx/file_inln.h"
288 #include "openmpi/ompi/mpi/cxx/datatype_inln.h"
289 #include "openmpi/ompi/mpi/cxx/functions_inln.h"
290 #include "openmpi/ompi/mpi/cxx/request_inln.h"
291 #include "openmpi/ompi/mpi/cxx/comm_inln.h"
292 #include "openmpi/ompi/mpi/cxx/intracomm_inln.h"
293 #include "openmpi/ompi/mpi/cxx/topology_inln.h"
294 #include "openmpi/ompi/mpi/cxx/intercomm_inln.h"
295 #include "openmpi/ompi/mpi/cxx/group_inln.h"
296 #include "openmpi/ompi/mpi/cxx/op_inln.h"
297 #include "openmpi/ompi/mpi/cxx/errhandler_inln.h"
298 #include "openmpi/ompi/mpi/cxx/status_inln.h"
299 #include "openmpi/ompi/mpi/cxx/info_inln.h"
300 #include "openmpi/ompi/mpi/cxx/win_inln.h"
301 #if OMPI_PROVIDE_MPI_FILE_INTERFACE
302 #include "openmpi/ompi/mpi/cxx/file_inln.h"
306 #endif // #if defined(c_plusplus) || defined(__cplusplus)
307 #endif // #ifndef MPIPP_H_
Definition: request.h:200
Definition: datatype.h:24
Definition: errhandler.h:21
Definition: ompi_datatype.h:68
Back-end type for MPI_Errorhandler.
Definition: errhandler.h:108
Definition: mutex_unix.h:53
Definition: topology.h:22
Definition: intercomm.h:23
Back-end structure for MPI_File.
Definition: file.h:42
Definition: topology.h:99
Definition: communicator.h:118
Definition: intracomm.h:21