MISR Toolkit  1.5.1
H5Spublic.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * Copyright by The HDF Group. *
3  * Copyright by the Board of Trustees of the University of Illinois. *
4  * All rights reserved. *
5  * *
6  * This file is part of HDF5. The full HDF5 copyright notice, including *
7  * terms governing use, modification, and redistribution, is contained in *
8  * the COPYING file, which can be found at the root of the source code *
9  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
10  * If you do not have access to either file, you may request a copy from *
11  * help@hdfgroup.org. *
12  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13 
14 /*
15  * This file contains public declarations for the H5S module.
16  */
17 #ifndef _H5Spublic_H
18 #define _H5Spublic_H
19 
20 /* Public headers needed by this file */
21 #include "H5public.h"
22 #include "H5Ipublic.h"
23 
24 /* Define atomic datatypes */
25 #define H5S_ALL (hid_t)0
26 #define H5S_UNLIMITED ((hsize_t)(hssize_t)(-1))
27 
28 /* Define user-level maximum number of dimensions */
29 #define H5S_MAX_RANK 32
30 
31 /* Different types of dataspaces */
32 typedef enum H5S_class_t {
33  H5S_NO_CLASS = -1, /*error */
34  H5S_SCALAR = 0, /*scalar variable */
35  H5S_SIMPLE = 1, /*simple data space */
36  H5S_NULL = 2 /*null data space */
37 } H5S_class_t;
38 
39 /* Different ways of combining selections */
40 typedef enum H5S_seloper_t {
41  H5S_SELECT_NOOP = -1, /* error */
42  H5S_SELECT_SET = 0, /* Select "set" operation */
43  H5S_SELECT_OR, /* Binary "or" operation for hyperslabs
44  * (add new selection to existing selection)
45  * Original region: AAAAAAAAAA
46  * New region: BBBBBBBBBB
47  * A or B: CCCCCCCCCCCCCCCC
48  */
49  H5S_SELECT_AND, /* Binary "and" operation for hyperslabs
50  * (only leave overlapped regions in selection)
51  * Original region: AAAAAAAAAA
52  * New region: BBBBBBBBBB
53  * A and B: CCCC
54  */
55  H5S_SELECT_XOR, /* Binary "xor" operation for hyperslabs
56  * (only leave non-overlapped regions in selection)
57  * Original region: AAAAAAAAAA
58  * New region: BBBBBBBBBB
59  * A xor B: CCCCCC CCCCCC
60  */
61  H5S_SELECT_NOTB, /* Binary "not" operation for hyperslabs
62  * (only leave non-overlapped regions in original selection)
63  * Original region: AAAAAAAAAA
64  * New region: BBBBBBBBBB
65  * A not B: CCCCCC
66  */
67  H5S_SELECT_NOTA, /* Binary "not" operation for hyperslabs
68  * (only leave non-overlapped regions in new selection)
69  * Original region: AAAAAAAAAA
70  * New region: BBBBBBBBBB
71  * B not A: CCCCCC
72  */
73  H5S_SELECT_APPEND, /* Append elements to end of point selection */
74  H5S_SELECT_PREPEND, /* Prepend elements to beginning of point selection */
75  H5S_SELECT_INVALID /* Invalid upper bound on selection operations */
77 
78 /* Enumerated type for the type of selection */
79 typedef enum {
80  H5S_SEL_ERROR = -1, /* Error */
81  H5S_SEL_NONE = 0, /* Nothing selected */
82  H5S_SEL_POINTS = 1, /* Sequence of points selected */
83  H5S_SEL_HYPERSLABS = 2, /* "New-style" hyperslab selection defined */
84  H5S_SEL_ALL = 3, /* Entire extent selected */
85  H5S_SEL_N /*THIS MUST BE LAST */
87 
88 #ifdef __cplusplus
89 extern "C" {
90 #endif
91 
92 /* Functions in H5S.c */
95  const hsize_t maxdims[]);
96 H5_DLL herr_t H5Sset_extent_simple(hid_t space_id, int rank,
97  const hsize_t dims[],
98  const hsize_t max[]);
99 H5_DLL hid_t H5Scopy(hid_t space_id);
100 H5_DLL herr_t H5Sclose(hid_t space_id);
101 H5_DLL herr_t H5Sencode(hid_t obj_id, void *buf, size_t *nalloc);
102 H5_DLL hid_t H5Sdecode(const void *buf);
105 H5_DLL int H5Sget_simple_extent_dims(hid_t space_id, hsize_t dims[],
106  hsize_t maxdims[]);
107 H5_DLL htri_t H5Sis_simple(hid_t space_id);
110  const hsize_t start[],
111  const hsize_t _stride[],
112  const hsize_t count[],
113  const hsize_t _block[]);
114 /* #define NEW_HYPERSLAB_API */
115 #ifdef NEW_HYPERSLAB_API
116 H5_DLL hid_t H5Scombine_hyperslab(hid_t space_id, H5S_seloper_t op,
117  const hsize_t start[],
118  const hsize_t _stride[],
119  const hsize_t count[],
120  const hsize_t _block[]);
121 H5_DLL herr_t H5Sselect_select(hid_t space1_id, H5S_seloper_t op,
122  hid_t space2_id);
123 H5_DLL hid_t H5Scombine_select(hid_t space1_id, H5S_seloper_t op,
124  hid_t space2_id);
125 #endif /* NEW_HYPERSLAB_API */
127  size_t num_elem, const hsize_t *coord);
130 H5_DLL herr_t H5Sextent_copy(hid_t dst_id,hid_t src_id);
139  hsize_t numblocks, hsize_t buf[/*numblocks*/]);
141  hsize_t numpoints, hsize_t buf[/*numpoints*/]);
143  hsize_t end[]);
145 
146 #ifdef __cplusplus
147 }
148 #endif
149 #endif /* _H5Spublic_H */
150 
HDFFCLIBAPI intf intf intf * count
H5_DLL hid_t H5Scopy(hid_t space_id)
H5_DLL herr_t H5Sextent_copy(hid_t dst_id, hid_t src_id)
H5_DLL hssize_t H5Sget_simple_extent_npoints(hid_t space_id)
H5_DLL hid_t H5Screate(H5S_class_t type)
H5_DLL herr_t H5Sclose(hid_t space_id)
#define H5_DLL
Definition: H5api_adpt.h:256
HDFFCLIBAPI void intf dims[]
H5S_sel_type
Definition: H5Spublic.h:79
int herr_t
Definition: H5public.h:124
H5_DLL htri_t H5Sextent_equal(hid_t sid1, hid_t sid2)
unsigned long long hsize_t
Definition: H5public.h:169
H5_DLL htri_t H5Sselect_valid(hid_t spaceid)
H5_DLL herr_t H5Sget_select_hyper_blocklist(hid_t spaceid, hsize_t startblock, hsize_t numblocks, hsize_t buf[])
H5_DLL hssize_t H5Sget_select_npoints(hid_t spaceid)
H5_DLL htri_t H5Sis_simple(hid_t space_id)
H5_DLL H5S_sel_type H5Sget_select_type(hid_t spaceid)
H5_DLL herr_t H5Sget_select_elem_pointlist(hid_t spaceid, hsize_t startpoint, hsize_t numpoints, hsize_t buf[])
H5_DLL hssize_t H5Sget_select_elem_npoints(hid_t spaceid)
H5_DLL herr_t H5Sencode(hid_t obj_id, void *buf, size_t *nalloc)
H5S_seloper_t
Definition: H5Spublic.h:40
H5_DLL herr_t H5Sset_extent_simple(hid_t space_id, int rank, const hsize_t dims[], const hsize_t max[])
H5_DLL herr_t H5Sselect_none(hid_t spaceid)
int hid_t
Definition: H5Ipublic.h:54
HDFFCLIBAPI int32 float32 * max
H5_DLL hssize_t H5Sget_select_hyper_nblocks(hid_t spaceid)
H5_DLL herr_t H5Sselect_all(hid_t spaceid)
H5_DLL herr_t H5Sset_extent_none(hid_t space_id)
H5_DLL H5S_class_t H5Sget_simple_extent_type(hid_t space_id)
H5_DLL hid_t H5Sdecode(const void *buf)
H5_DLL herr_t H5Sselect_elements(hid_t space_id, H5S_seloper_t op, size_t num_elem, const hsize_t *coord)
static int num_elem(char *strv, unsigned elem_len, int term_char, int num_term)
Definition: cfortHdf.h:384
H5_DLL int H5Sget_simple_extent_dims(hid_t space_id, hsize_t dims[], hsize_t maxdims[])
HDFFCLIBAPI intf intf start[]
H5_DLL herr_t H5Sget_select_bounds(hid_t spaceid, hsize_t start[], hsize_t end[])
signed long long hssize_t
Definition: H5public.h:170
HDFFCLIBAPI intf intf intf * type
H5_DLL herr_t H5Soffset_simple(hid_t space_id, const hssize_t *offset)
H5_DLL herr_t H5Sselect_hyperslab(hid_t space_id, H5S_seloper_t op, const hsize_t start[], const hsize_t _stride[], const hsize_t count[], const hsize_t _block[])
HDFFCLIBAPI intf * offset
int htri_t
Definition: H5public.h:143
HDFFCLIBAPI intf * rank
H5S_class_t
Definition: H5Spublic.h:32
HDFFCLIBAPI intf * buf
H5_DLL int H5Sget_simple_extent_ndims(hid_t space_id)
H5_DLL hid_t H5Screate_simple(int rank, const hsize_t dims[], const hsize_t maxdims[])

MISR Toolkit - Copyright © 2005 - 2020 Jet Propulsion Laboratory
Generated on Fri Jun 19 2020 22:49:53