00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _H5Spublic_H
00020 #define _H5Spublic_H
00021
00022
00023 #include "H5public.h"
00024 #include "H5Ipublic.h"
00025
00026
00027 #define H5S_ALL 0
00028 #define H5S_UNLIMITED ((hsize_t)(hssize_t)(-1))
00029
00030
00031 #define H5S_MAX_RANK 32
00032
00033
00034 typedef enum H5S_class_t {
00035 H5S_NO_CLASS = -1,
00036 H5S_SCALAR = 0,
00037 H5S_SIMPLE = 1,
00038 H5S_NULL = 2
00039 } H5S_class_t;
00040
00041
00042 typedef enum H5S_seloper_t {
00043 H5S_SELECT_NOOP = -1,
00044 H5S_SELECT_SET = 0,
00045 H5S_SELECT_OR,
00046
00047
00048
00049
00050
00051 H5S_SELECT_AND,
00052
00053
00054
00055
00056
00057 H5S_SELECT_XOR,
00058
00059
00060
00061
00062
00063 H5S_SELECT_NOTB,
00064
00065
00066
00067
00068
00069 H5S_SELECT_NOTA,
00070
00071
00072
00073
00074
00075 H5S_SELECT_APPEND,
00076 H5S_SELECT_PREPEND,
00077 H5S_SELECT_INVALID
00078 } H5S_seloper_t;
00079
00080
00081 typedef enum {
00082 H5S_SEL_ERROR = -1,
00083 H5S_SEL_NONE = 0,
00084 H5S_SEL_POINTS = 1,
00085 H5S_SEL_HYPERSLABS = 2,
00086 H5S_SEL_ALL = 3,
00087 H5S_SEL_N
00088 }H5S_sel_type;
00089
00090 #ifdef __cplusplus
00091 extern "C" {
00092 #endif
00093
00094
00095 H5_DLL hid_t H5Screate(H5S_class_t type);
00096 H5_DLL hid_t H5Screate_simple(int rank, const hsize_t dims[],
00097 const hsize_t maxdims[]);
00098 H5_DLL herr_t H5Sset_extent_simple(hid_t space_id, int rank,
00099 const hsize_t dims[],
00100 const hsize_t max[]);
00101 H5_DLL hid_t H5Scopy(hid_t space_id);
00102 H5_DLL herr_t H5Sclose(hid_t space_id);
00103 H5_DLL herr_t H5Sencode(hid_t obj_id, void *buf, size_t *nalloc);
00104 H5_DLL hid_t H5Sdecode(const void *buf);
00105 H5_DLL hssize_t H5Sget_simple_extent_npoints(hid_t space_id);
00106 H5_DLL int H5Sget_simple_extent_ndims(hid_t space_id);
00107 H5_DLL int H5Sget_simple_extent_dims(hid_t space_id, hsize_t dims[],
00108 hsize_t maxdims[]);
00109 H5_DLL htri_t H5Sis_simple(hid_t space_id);
00110 H5_DLL hssize_t H5Sget_select_npoints(hid_t spaceid);
00111 H5_DLL herr_t H5Sselect_hyperslab(hid_t space_id, H5S_seloper_t op,
00112 const hsize_t start[],
00113 const hsize_t _stride[],
00114 const hsize_t count[],
00115 const hsize_t _block[]);
00116
00117 #ifdef NEW_HYPERSLAB_API
00118 H5_DLL hid_t H5Scombine_hyperslab(hid_t space_id, H5S_seloper_t op,
00119 const hsize_t start[],
00120 const hsize_t _stride[],
00121 const hsize_t count[],
00122 const hsize_t _block[]);
00123 H5_DLL herr_t H5Sselect_select(hid_t space1_id, H5S_seloper_t op,
00124 hid_t space2_id);
00125 H5_DLL hid_t H5Scombine_select(hid_t space1_id, H5S_seloper_t op,
00126 hid_t space2_id);
00127 #endif
00128 H5_DLL herr_t H5Sselect_elements(hid_t space_id, H5S_seloper_t op,
00129 size_t num_elem, const hsize_t *coord);
00130 H5_DLL H5S_class_t H5Sget_simple_extent_type(hid_t space_id);
00131 H5_DLL herr_t H5Sset_extent_none(hid_t space_id);
00132 H5_DLL herr_t H5Sextent_copy(hid_t dst_id,hid_t src_id);
00133 H5_DLL htri_t H5Sextent_equal(hid_t sid1, hid_t sid2);
00134 H5_DLL herr_t H5Sselect_all(hid_t spaceid);
00135 H5_DLL herr_t H5Sselect_none(hid_t spaceid);
00136 H5_DLL herr_t H5Soffset_simple(hid_t space_id, const hssize_t *offset);
00137 H5_DLL htri_t H5Sselect_valid(hid_t spaceid);
00138 H5_DLL hssize_t H5Sget_select_hyper_nblocks(hid_t spaceid);
00139 H5_DLL hssize_t H5Sget_select_elem_npoints(hid_t spaceid);
00140 H5_DLL herr_t H5Sget_select_hyper_blocklist(hid_t spaceid, hsize_t startblock,
00141 hsize_t numblocks, hsize_t buf[]);
00142 H5_DLL herr_t H5Sget_select_elem_pointlist(hid_t spaceid, hsize_t startpoint,
00143 hsize_t numpoints, hsize_t buf[]);
00144 H5_DLL herr_t H5Sget_select_bounds(hid_t spaceid, hsize_t start[],
00145 hsize_t end[]);
00146 H5_DLL H5S_sel_type H5Sget_select_type(hid_t spaceid);
00147
00148 #ifdef __cplusplus
00149 }
00150 #endif
00151 #endif
00152