MISR Toolkit  1.5.1
H5Apkg.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  * Programmer: Quincey Koziol
16  * Monday, Apr 20
17  *
18  * Purpose: This file contains declarations which are visible only within
19  * the H5A package. Source files outside the H5A package should
20  * include H5Aprivate.h instead.
21  */
22 #ifndef H5A_PACKAGE
23 #error "Do not include this file outside the H5A package!"
24 #endif
25 
26 #ifndef _H5Apkg_H
27 #define _H5Apkg_H
28 
29 /*
30  * Define this to enable debugging.
31  */
32 #ifdef NDEBUG
33 # undef H5A_DEBUG
34 #endif
35 
36 /* Get package's private header */
37 #include "H5Aprivate.h"
38 
39 /* Other private headers needed by this file */
40 #include "H5B2private.h" /* v2 B-trees */
41 #include "H5FLprivate.h" /* Free Lists */
42 #include "H5HFprivate.h" /* Fractal heaps */
43 #include "H5Oprivate.h" /* Object headers */
44 #include "H5Sprivate.h" /* Dataspace */
45 #include "H5Tprivate.h" /* Datatype functions */
46 
47 
48 /**************************/
49 /* Package Private Macros */
50 /**************************/
51 
52 /* This is the initial version, which does not have support for shared datatypes */
53 #define H5O_ATTR_VERSION_1 1
54 
55 /* This version allows support for shared datatypes & dataspaces by adding a
56  * 'flag' byte indicating when those components are shared. This version
57  * also dropped the alignment on all the components.
58  */
59 #define H5O_ATTR_VERSION_2 2
60 
61 /* Add support for different character encodings of attribute names */
62 #define H5O_ATTR_VERSION_3 3
63 
64 /* The latest version of the format. Look through the 'encode', 'decode'
65  * and 'size' message callbacks for places to change when updating this.
66  */
67 #define H5O_ATTR_VERSION_LATEST H5O_ATTR_VERSION_3
68 
69 
70 /****************************/
71 /* Package Private Typedefs */
72 /****************************/
73 /* Define the shared attribute structure */
74 typedef struct H5A_shared_t {
75  uint8_t version; /* Version to encode attribute with */
76 
77  char *name; /* Attribute's name */
78  H5T_cset_t encoding; /* Character encoding of attribute name */
79 
80  H5T_t *dt; /* Attribute's datatype */
81  size_t dt_size; /* Size of datatype on disk */
82 
83  H5S_t *ds; /* Attribute's dataspace */
84  size_t ds_size; /* Size of dataspace on disk */
85 
86  void *data; /* Attribute data (on a temporary basis) */
87  size_t data_size; /* Size of data on disk */
88  H5O_msg_crt_idx_t crt_idx; /* Attribute's creation index in the object header */
89  unsigned nrefs; /* Ref count for times this object is referred */
90 } H5A_shared_t;
91 
92 /* Define the main attribute structure */
93 struct H5A_t {
94  H5O_shared_t sh_loc; /* Shared message info (must be first) */
95  H5O_loc_t oloc; /* Object location for object attribute is on */
96  hbool_t obj_opened; /* Object header entry opened? */
97  H5G_name_t path; /* Group hierarchy path */
98  H5A_shared_t *shared; /* Shared attribute information */
99 };
100 
101 /* Typedefs for "dense" attribute storage */
102 /* (fractal heap & v2 B-tree info) */
103 
104 /* Typedef for native 'name' field index records in the v2 B-tree */
105 /* (Keep 'id' field first so generic record handling in callbacks works) */
106 typedef struct H5A_dense_bt2_name_rec_t {
107  H5O_fheap_id_t id; /* Heap ID for attribute */
108  uint8_t flags; /* Object header message flags for attribute */
109  H5O_msg_crt_idx_t corder; /* 'creation order' field value */
110  uint32_t hash; /* Hash of 'name' field value */
112 
113 /* Typedef for native 'creation order' field index records in the v2 B-tree */
114 /* (Keep 'id' field first so generic record handling in callbacks works) */
116  H5O_fheap_id_t id; /* Heap ID for attribute */
117  uint8_t flags; /* Object header message flags for attribute */
118  H5O_msg_crt_idx_t corder; /* 'creation order' field value */
120 
121 /* Define the 'found' callback function pointer for matching an attribute record in a v2 B-tree */
122 typedef herr_t (*H5A_bt2_found_t)(const H5A_t *attr, hbool_t *took_ownership, void *op_data);
123 
124 /*
125  * Common data exchange structure for dense attribute storage. This structure
126  * is passed through the v2 B-tree layer to the methods for the objects
127  * to which the v2 B-tree points.
128  */
129 typedef struct H5A_bt2_ud_common_t {
130  /* downward */
131  H5F_t *f; /* Pointer to file that fractal heap is in */
132  hid_t dxpl_id; /* DXPL for operation */
133  H5HF_t *fheap; /* Fractal heap handle */
134  H5HF_t *shared_fheap; /* Fractal heap handle for shared messages */
135  const char *name; /* Name of attribute to compare */
136  uint32_t name_hash; /* Hash of name of attribute to compare */
137  uint8_t flags; /* Flags for attribute storage location */
138  H5O_msg_crt_idx_t corder; /* Creation order value of attribute to compare */
139  H5A_bt2_found_t found_op; /* Callback when correct attribute is found */
140  void *found_op_data; /* Callback data when correct attribute is found */
142 
143 /*
144  * Data exchange structure for dense attribute storage. This structure is
145  * passed through the v2 B-tree layer when inserting attributes.
146  */
147 typedef struct H5A_bt2_ud_ins_t {
148  /* downward */
149  H5A_bt2_ud_common_t common; /* Common info for B-tree user data (must be first) */
150  H5O_fheap_id_t id; /* Heap ID of attribute to insert */
152 
153 /* Data structure to hold table of attributes for an object */
154 typedef struct {
155  size_t nattrs; /* # of attributes in table */
156  H5A_t **attrs; /* Pointer to array of attribute pointers */
158 
159 
160 /*****************************/
161 /* Package Private Variables */
162 /*****************************/
163 
164 /* Declare extern the free list for H5A_t's */
166 
167 /* Declare the external free lists for H5A_shared_t's */
169 
170 /* Declare extern a free list to manage blocks of type conversion data */
171 H5FL_BLK_EXTERN(attr_buf);
172 
173 /* The v2 B-tree class for indexing 'name' field on attributes */
174 H5_DLLVAR const H5B2_class_t H5A_BT2_NAME[1];
175 
176 /* The v2 B-tree class for indexing 'creation order' field on attributes */
177 H5_DLLVAR const H5B2_class_t H5A_BT2_CORDER[1];
178 
179 
180 /******************************/
181 /* Package Private Prototypes */
182 /******************************/
183 
184 /* Function prototypes for H5A package scope */
185 H5_DLL herr_t H5A_init(void);
187 H5_DLL H5A_t *H5A_create(const H5G_loc_t *loc, const char *name,
188  const H5T_t *type, const H5S_t *space, hid_t acpl_id, hid_t dxpl_id);
189 H5_DLL H5A_t *H5A_open_by_name(const H5G_loc_t *loc, const char *obj_name,
190  const char *attr_name, hid_t lapl_id, hid_t dxpl_id);
191 H5_DLL H5A_t *H5A_open_by_idx(const H5G_loc_t *loc, const char *obj_name,
192  H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id, hid_t dxpl_id);
193 H5_DLL herr_t H5A_open_common(const H5G_loc_t *loc, H5A_t *attr);
194 H5_DLL herr_t H5A_write(H5A_t *attr, const H5T_t *mem_type, const void *buf, hid_t dxpl_id);
195 H5_DLL herr_t H5A_read(const H5A_t *attr, const H5T_t *mem_type, void *buf, hid_t dxpl_id);
196 H5_DLL ssize_t H5A_get_name(H5A_t *attr, size_t buf_size, char *buf);
197 H5_DLL H5A_t *H5A_copy(H5A_t *new_attr, const H5A_t *old_attr);
198 H5_DLL herr_t H5A_get_info(const H5A_t *attr, H5A_info_t *ainfo);
200 H5_DLL herr_t H5A_free(H5A_t *attr);
202 H5_DLL htri_t H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo);
203 H5_DLL herr_t H5A_set_version(const H5F_t *f, H5A_t *attr);
204 H5_DLL herr_t H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name,
205  const char *new_attr_name, hid_t lapl_id, hid_t dxpl_id);
206 H5_DLL htri_t H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name,
207  hid_t lapl_id, hid_t dxpl_id);
208 
209 /* Attribute "dense" storage routines */
210 H5_DLL herr_t H5A_dense_create(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo);
211 H5_DLL H5A_t *H5A_dense_open(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo,
212  const char *name);
213 H5_DLL herr_t H5A_dense_insert(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo,
214  H5A_t *attr);
215 H5_DLL herr_t H5A_dense_write(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo,
216  H5A_t *attr);
217 H5_DLL herr_t H5A_dense_rename(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo,
218  const char *old_name, const char *new_name);
219 H5_DLL herr_t H5A_dense_iterate(H5F_t *f, hid_t dxpl_id, hid_t loc_id,
220  const H5O_ainfo_t *ainfo, H5_index_t idx_type, H5_iter_order_t order,
221  hsize_t skip, hsize_t *last_attr, const H5A_attr_iter_op_t *attr_op,
222  void *op_data);
223 H5_DLL herr_t H5A_dense_remove(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo,
224  const char *name);
225 H5_DLL herr_t H5A_dense_remove_by_idx(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo,
227 H5_DLL htri_t H5A_dense_exists(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo,
228  const char *name);
229 H5_DLL herr_t H5A_dense_delete(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo);
230 
231 
232 /* Attribute table operations */
234  H5_index_t idx_type, H5_iter_order_t order, H5A_attr_table_t *atable);
236  const H5O_ainfo_t *ainfo, H5_index_t idx_type, H5_iter_order_t order,
237  H5A_attr_table_t *atable);
239  hsize_t skip, hsize_t *last_attr, hid_t loc_id,
240  const H5A_attr_iter_op_t *attr_op, void *op_data);
242 
243 /* Attribute operations */
244 H5_DLL herr_t H5O_attr_create(const H5O_loc_t *loc, hid_t dxpl_id, H5A_t *attr);
245 H5_DLL H5A_t *H5O_attr_open_by_name(const H5O_loc_t *loc, const char *name,
246  hid_t dxpl_id);
247 H5_DLL H5A_t *H5O_attr_open_by_idx(const H5O_loc_t *loc, H5_index_t idx_type,
248  H5_iter_order_t order, hsize_t n, hid_t dxpl_id);
250  H5A_t *attr, H5O_shared_t *sh_mesg);
251 H5_DLL herr_t H5O_attr_write(const H5O_loc_t *loc, hid_t dxpl_id,
252  H5A_t *attr);
253 H5_DLL herr_t H5O_attr_rename(const H5O_loc_t *loc, hid_t dxpl_id,
254  const char *old_name, const char *new_name);
255 H5_DLL herr_t H5O_attr_remove(const H5O_loc_t *loc, const char *name,
256  hid_t dxpl_id);
257 H5_DLL herr_t H5O_attr_remove_by_idx(const H5O_loc_t *loc, H5_index_t idx_type,
258  H5_iter_order_t order, hsize_t n, hid_t dxpl_id);
259 H5_DLL htri_t H5O_attr_exists(const H5O_loc_t *loc, const char *name, hid_t dxpl_id);
260 #ifndef H5_NO_DEPRECATED_SYMBOLS
261 H5_DLL int H5O_attr_count(const H5O_loc_t *loc, hid_t dxpl_id);
262 #endif /* H5_NO_DEPRECATED_SYMBOLS */
263 H5_DLL H5A_t *H5A_attr_copy_file(const H5A_t *attr_src, H5F_t *file_dst, hbool_t *recompute_size,
264  H5O_copy_t *cpy_info, hid_t dxpl_id);
265 H5_DLL herr_t H5A_attr_post_copy_file(const H5O_loc_t *src_oloc, const H5A_t *mesg_src,
266  H5O_loc_t *dst_oloc, const H5A_t *mesg_dst, hid_t dxpl_id, H5O_copy_t *cpy_info);
267 H5_DLL herr_t H5A_dense_post_copy_file_all(const H5O_loc_t *src_oloc, const H5O_ainfo_t * ainfo_src,
268  H5O_loc_t *dst_oloc, H5O_ainfo_t *ainfo_dst, hid_t dxpl_id, H5O_copy_t *cpy_info);
269 
270 
271 /* Testing functions */
272 #ifdef H5A_TESTING
273 H5_DLL htri_t H5A_is_shared_test(hid_t aid);
274 H5_DLL herr_t H5A_get_shared_rc_test(hid_t attr_id, hsize_t *ref_count);
275 #endif /* H5A_TESTING */
276 
277 #endif /* _H5Apkg_H */
278 
H5HF_t * fheap
Definition: H5Apkg.h:133
H5_DLL herr_t H5A_dense_rename(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, const char *old_name, const char *new_name)
H5_DLL herr_t H5O_attr_remove(const H5O_loc_t *loc, const char *name, hid_t dxpl_id)
H5_DLL herr_t H5A_attr_post_copy_file(const H5O_loc_t *src_oloc, const H5A_t *mesg_src, H5O_loc_t *dst_oloc, const H5A_t *mesg_dst, hid_t dxpl_id, H5O_copy_t *cpy_info)
H5G_name_t path
Definition: H5Apkg.h:97
H5A_t ** attrs
Definition: H5Apkg.h:156
H5_DLL H5A_t * H5A_open_by_idx(const H5G_loc_t *loc, const char *obj_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id, hid_t dxpl_id)
unsigned int hbool_t
Definition: H5public.h:142
void * data
Definition: H5Apkg.h:86
H5_DLL herr_t H5A_dense_insert(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, H5A_t *attr)
H5_DLL herr_t H5A_rename_by_name(H5G_loc_t loc, const char *obj_name, const char *old_attr_name, const char *new_attr_name, hid_t lapl_id, hid_t dxpl_id)
H5_DLL herr_t H5A_close(H5A_t *attr)
H5_DLL htri_t H5A_dense_exists(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, const char *name)
H5O_fheap_id_t id
Definition: H5Apkg.h:107
uint8_t version
Definition: H5Apkg.h:75
H5_DLL htri_t H5O_attr_exists(const H5O_loc_t *loc, const char *name, hid_t dxpl_id)
H5_index_t
Definition: H5public.h:305
long long ssize_t
Definition: H5public.h:156
#define H5_DLL
Definition: H5api_adpt.h:256
H5_DLL herr_t H5A_dense_write(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, H5A_t *attr)
int herr_t
Definition: H5public.h:124
H5O_fheap_id_t id
Definition: H5Apkg.h:150
H5_DLL hid_t H5A_get_create_plist(H5A_t *attr)
H5_DLL H5A_t * H5A_copy(H5A_t *new_attr, const H5A_t *old_attr)
H5_DLL herr_t H5A_get_info(const H5A_t *attr, H5A_info_t *ainfo)
H5_DLL herr_t H5A_dense_create(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo)
unsigned long long hsize_t
Definition: H5public.h:169
H5_DLL herr_t H5A_free(H5A_t *attr)
H5O_shared_t sh_loc
Definition: H5Apkg.h:94
H5_DLL H5A_t * H5A_attr_copy_file(const H5A_t *attr_src, H5F_t *file_dst, hbool_t *recompute_size, H5O_copy_t *cpy_info, hid_t dxpl_id)
H5T_t * dt
Definition: H5Apkg.h:80
H5_DLL herr_t H5O_attr_create(const H5O_loc_t *loc, hid_t dxpl_id, H5A_t *attr)
void * found_op_data
Definition: H5Apkg.h:140
H5T_cset_t encoding
Definition: H5Apkg.h:78
H5A_shared_t * shared
Definition: H5Apkg.h:98
H5_DLL htri_t H5A_get_ainfo(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5O_ainfo_t *ainfo)
H5_DLL herr_t H5A_attr_release_table(H5A_attr_table_t *atable)
H5_DLL herr_t H5A__term_deprec_interface(void)
Definition: H5Spkg.h:192
H5_DLL herr_t H5O_attr_update_shared(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5A_t *attr, H5O_shared_t *sh_mesg)
H5_DLL herr_t H5O_attr_rename(const H5O_loc_t *loc, hid_t dxpl_id, const char *old_name, const char *new_name)
H5T_cset_t
Definition: H5Tpublic.h:78
size_t data_size
Definition: H5Apkg.h:87
H5_DLL herr_t H5A_dense_build_table(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, H5_index_t idx_type, H5_iter_order_t order, H5A_attr_table_t *atable)
Definition: H5Opkg.h:262
herr_t(* H5A_bt2_found_t)(const H5A_t *attr, hbool_t *took_ownership, void *op_data)
Definition: H5Apkg.h:122
H5_iter_order_t
Definition: H5public.h:284
HDFFCLIBAPI _fcd intf intf * order
H5HF_t * shared_fheap
Definition: H5Apkg.h:134
size_t ds_size
Definition: H5Apkg.h:84
H5_DLL herr_t H5A_dense_iterate(H5F_t *f, hid_t dxpl_id, hid_t loc_id, const H5O_ainfo_t *ainfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t skip, hsize_t *last_attr, const H5A_attr_iter_op_t *attr_op, void *op_data)
H5_DLL herr_t H5A_attr_iterate_table(const H5A_attr_table_t *atable, hsize_t skip, hsize_t *last_attr, hid_t loc_id, const H5A_attr_iter_op_t *attr_op, void *op_data)
struct H5A_bt2_ud_ins_t H5A_bt2_ud_ins_t
H5_DLL herr_t H5A_open_common(const H5G_loc_t *loc, H5A_t *attr)
Definition: H5Tpkg.h:304
H5_DLL ssize_t H5A_get_name(H5A_t *attr, size_t buf_size, char *buf)
int hid_t
Definition: H5Ipublic.h:54
struct H5A_bt2_ud_common_t H5A_bt2_ud_common_t
HDFFCLIBAPI _fcd _fcd intf * n
H5A_bt2_found_t found_op
Definition: H5Apkg.h:139
H5A_bt2_ud_common_t common
Definition: H5Apkg.h:149
H5_DLL herr_t H5A_dense_remove_by_idx(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, H5_index_t idx_type, H5_iter_order_t order, hsize_t n)
char * name
Definition: H5Apkg.h:77
const char * name
Definition: H5Apkg.h:135
uint32_t H5O_msg_crt_idx_t
Definition: H5Opublic.h:127
H5_DLL htri_t H5A_exists_by_name(H5G_loc_t loc, const char *obj_name, const char *attr_name, hid_t lapl_id, hid_t dxpl_id)
H5_DLLVAR const H5B2_class_t H5A_BT2_CORDER[1]
Definition: H5Apkg.h:177
H5_DLL herr_t H5A_dense_remove(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, const char *name)
size_t nattrs
Definition: H5Apkg.h:155
H5_DLL herr_t H5O_attr_remove_by_idx(const H5O_loc_t *loc, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t dxpl_id)
H5O_msg_crt_idx_t corder
Definition: H5Apkg.h:118
H5_DLL herr_t H5A_compact_build_table(H5F_t *f, hid_t dxpl_id, H5O_t *oh, H5_index_t idx_type, H5_iter_order_t order, H5A_attr_table_t *atable)
H5O_fheap_id_t id
Definition: H5Apkg.h:116
uint32_t name_hash
Definition: H5Apkg.h:136
H5_DLL herr_t H5O_attr_write(const H5O_loc_t *loc, hid_t dxpl_id, H5A_t *attr)
HDFFCLIBAPI intf intf intf * type
H5FL_EXTERN(H5A_t)
hbool_t obj_opened
Definition: H5Apkg.h:96
H5_DLL herr_t H5A_read(const H5A_t *attr, const H5T_t *mem_type, void *buf, hid_t dxpl_id)
H5_DLLVAR const H5B2_class_t H5A_BT2_NAME[1]
Definition: H5Apkg.h:174
H5S_t * ds
Definition: H5Apkg.h:83
#define H5_DLLVAR
Definition: H5api_adpt.h:257
H5_DLL H5A_t * H5A_dense_open(H5F_t *f, hid_t dxpl_id, const H5O_ainfo_t *ainfo, const char *name)
struct H5A_dense_bt2_name_rec_t H5A_dense_bt2_name_rec_t
size_t dt_size
Definition: H5Apkg.h:81
H5_DLL herr_t H5A_write(H5A_t *attr, const H5T_t *mem_type, const void *buf, hid_t dxpl_id)
H5O_loc_t oloc
Definition: H5Apkg.h:95
H5O_msg_crt_idx_t corder
Definition: H5Apkg.h:109
struct H5A_dense_bt2_corder_rec_t H5A_dense_bt2_corder_rec_t
H5_DLL herr_t H5A_dense_delete(H5F_t *f, hid_t dxpl_id, H5O_ainfo_t *ainfo)
struct H5A_shared_t H5A_shared_t
H5_DLL herr_t H5A_set_version(const H5F_t *f, H5A_t *attr)
H5_DLL H5A_t * H5O_attr_open_by_name(const H5O_loc_t *loc, const char *name, hid_t dxpl_id)
int htri_t
Definition: H5public.h:143
H5_DLL H5A_t * H5A_create(const H5G_loc_t *loc, const char *name, const H5T_t *type, const H5S_t *space, hid_t acpl_id, hid_t dxpl_id)
H5_DLL herr_t H5A_dense_post_copy_file_all(const H5O_loc_t *src_oloc, const H5O_ainfo_t *ainfo_src, H5O_loc_t *dst_oloc, H5O_ainfo_t *ainfo_dst, hid_t dxpl_id, H5O_copy_t *cpy_info)
H5_DLL herr_t H5A_init(void)
H5_DLL H5A_t * H5A_open_by_name(const H5G_loc_t *loc, const char *obj_name, const char *attr_name, hid_t lapl_id, hid_t dxpl_id)
unsigned nrefs
Definition: H5Apkg.h:89
H5O_msg_crt_idx_t crt_idx
Definition: H5Apkg.h:88
Definition: H5Apkg.h:93
H5_DLL int H5O_attr_count(const H5O_loc_t *loc, hid_t dxpl_id)
HDFFCLIBAPI intf * buf
H5FL_BLK_EXTERN(attr_buf)
H5O_msg_crt_idx_t corder
Definition: H5Apkg.h:138
H5_DLL H5A_t * H5O_attr_open_by_idx(const H5O_loc_t *loc, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t dxpl_id)
Definition: H5Fpkg.h:255

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