diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2015-10-04 07:33:40 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2015-10-04 07:33:40 (GMT) |
commit | 914643490ab581c4b0bb78ca30a8e1fa520b4d6d (patch) | |
tree | 53436d1611395e02c652c7ac5c075898fc2ae261 /src/H5Sprivate.h | |
parent | 0ee053bb95a620b6f8109d22a372f6acc1cee300 (diff) | |
parent | 888a002cddaa4e1d9a165ea01dfe62f399df9eb9 (diff) | |
download | hdf5-914643490ab581c4b0bb78ca30a8e1fa520b4d6d.zip hdf5-914643490ab581c4b0bb78ca30a8e1fa520b4d6d.tar.gz hdf5-914643490ab581c4b0bb78ca30a8e1fa520b4d6d.tar.bz2 |
[svn-r27946] Brought VDS branch in sync with trunk (up to r27945).
Tested on Ubuntu 15.04 (Linux 3.19 x86_64), gcc 4.9.2, MPICH 3.1.4
and CMake 3.3.2.
- Autotools serial w/ Fortran, C++
- Autotools parallel w/ Fortran
- CMake serial w/ Fortran, C++
Diffstat (limited to 'src/H5Sprivate.h')
-rw-r--r-- | src/H5Sprivate.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h index 6c4265d..b00dc6b 100644 --- a/src/H5Sprivate.h +++ b/src/H5Sprivate.h @@ -31,6 +31,7 @@ #include "H5Gprivate.h" /* Groups */ #include "H5Oprivate.h" /* Object headers */ #include "H5Pprivate.h" /* Property lists */ +#include "H5Tprivate.h" /* Datatypes */ /* Flags for H5S_find */ #define H5S_CONV_PAR_IO_POSSIBLE 0x0001 @@ -115,6 +116,29 @@ typedef struct H5S_sel_iter_t { } u; } H5S_sel_iter_t; +/* Selection iteration operator for internal library callbacks */ +typedef herr_t (*H5S_sel_iter_lib_op_t)(void *elem, const H5T_t *type, + unsigned ndim, const hsize_t *point, void *op_data); + +/* Describe kind of callback to make */ +typedef enum H5S_sel_iter_op_type_t { + H5S_SEL_ITER_OP_APP, /* Application callback */ + H5S_SEL_ITER_OP_LIB /* Library internal callback */ +} H5S_sel_iter_op_type_t; + +typedef struct H5S_sel_iter_app_op_t { + H5D_operator_t op; /* Callback */ + hid_t type_id; /* Type ID to be passed to callback */ +} H5S_sel_iter_app_op_t; + +typedef struct H5S_sel_iter_op_t { + H5S_sel_iter_op_type_t op_type; + union { + H5S_sel_iter_app_op_t app_op; /* Application callback */ + H5S_sel_iter_lib_op_t lib_op; /* Library internal callback */ + } u; +} H5S_sel_iter_op_t; + /* If the module using this macro is allowed access to the private variables, access them directly */ #ifdef H5S_MODULE #define H5S_GET_EXTENT_TYPE(S) ((S)->extent.type) @@ -213,8 +237,8 @@ H5_DLL herr_t H5S_extent_copy(H5S_t *dst, const H5S_t *src); /* Operations on selections */ H5_DLL herr_t H5S_select_deserialize(H5S_t **space, const uint8_t **p); H5_DLL H5S_sel_type H5S_get_select_type(const H5S_t *space); -H5_DLL herr_t H5S_select_iterate(void *buf, hid_t type_id, const H5S_t *space, - H5D_operator_t op, void *operator_data); +H5_DLL herr_t H5S_select_iterate(void *buf, const H5T_t *type, const H5S_t *space, + const H5S_sel_iter_op_t *op, void *op_data); H5_DLL herr_t H5S_select_fill(const void *fill, size_t fill_size, const H5S_t *space, void *buf); H5_DLL htri_t H5S_select_valid(const H5S_t *space); |