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 files COPYING and Copyright.html. COPYING can be found at the root * 9 * of the source code distribution tree; Copyright.html can be found at the * 10 * root level of an installed copy of the electronic HDF5 document set and * 11 * is linked from the top-level documents page. It can also be found at * 12 * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * 13 * access to either file, you may request a copy from help@hdfgroup.org. * 14 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /* 17 * This file contains function prototypes for each exported function in the 18 * H5P module. 19 */ 20 #ifndef _H5Ppublic_H 21 #define _H5Ppublic_H 22 23 /* System headers needed by this file */ 24 25 /* Public headers needed by this file */ 26 #include "H5public.h" 27 #include "H5ACpublic.h" 28 #include "H5Dpublic.h" 29 #include "H5Fpublic.h" 30 #include "H5FDpublic.h" 31 #include "H5Ipublic.h" 32 #include "H5Lpublic.h" 33 #include "H5MMpublic.h" 34 #include "H5Tpublic.h" 35 #include "H5Zpublic.h" 36 37 38 /*****************/ 39 /* Public Macros */ 40 /*****************/ 41 42 /* When this header is included from a private HDF5 header, don't make calls to H5open() */ 43 #undef H5OPEN 44 #ifndef _H5private_H 45 #define H5OPEN H5open(), 46 #else /* _H5private_H */ 47 #define H5OPEN 48 #endif /* _H5private_H */ 49 50 /* 51 * The library's property list classes 52 */ 53 54 #define H5P_ROOT (H5OPEN H5P_CLS_ROOT_g) 55 #define H5P_OBJECT_CREATE (H5OPEN H5P_CLS_OBJECT_CREATE_g) 56 #define H5P_FILE_CREATE (H5OPEN H5P_CLS_FILE_CREATE_g) 57 #define H5P_FILE_ACCESS (H5OPEN H5P_CLS_FILE_ACCESS_g) 58 #define H5P_DATASET_CREATE (H5OPEN H5P_CLS_DATASET_CREATE_g) 59 #define H5P_DATASET_ACCESS (H5OPEN H5P_CLS_DATASET_ACCESS_g) 60 #define H5P_DATASET_XFER (H5OPEN H5P_CLS_DATASET_XFER_g) 61 #define H5P_FILE_MOUNT (H5OPEN H5P_CLS_FILE_MOUNT_g) 62 #define H5P_GROUP_CREATE (H5OPEN H5P_CLS_GROUP_CREATE_g) 63 #define H5P_GROUP_ACCESS (H5OPEN H5P_CLS_GROUP_ACCESS_g) 64 #define H5P_DATATYPE_CREATE (H5OPEN H5P_CLS_DATATYPE_CREATE_g) 65 #define H5P_DATATYPE_ACCESS (H5OPEN H5P_CLS_DATATYPE_ACCESS_g) 66 #define H5P_STRING_CREATE (H5OPEN H5P_CLS_STRING_CREATE_g) 67 #define H5P_ATTRIBUTE_CREATE (H5OPEN H5P_CLS_ATTRIBUTE_CREATE_g) 68 #define H5P_OBJECT_COPY (H5OPEN H5P_CLS_OBJECT_COPY_g) 69 #define H5P_LINK_CREATE (H5OPEN H5P_CLS_LINK_CREATE_g) 70 #define H5P_LINK_ACCESS (H5OPEN H5P_CLS_LINK_ACCESS_g) 71 72 /* 73 * The library's default property lists 74 */ 75 #define H5P_FILE_CREATE_DEFAULT (H5OPEN H5P_LST_FILE_CREATE_g) 76 #define H5P_FILE_ACCESS_DEFAULT (H5OPEN H5P_LST_FILE_ACCESS_g) 77 #define H5P_DATASET_CREATE_DEFAULT (H5OPEN H5P_LST_DATASET_CREATE_g) 78 #define H5P_DATASET_ACCESS_DEFAULT (H5OPEN H5P_LST_DATASET_ACCESS_g) 79 #define H5P_DATASET_XFER_DEFAULT (H5OPEN H5P_LST_DATASET_XFER_g) 80 #define H5P_FILE_MOUNT_DEFAULT (H5OPEN H5P_LST_FILE_MOUNT_g) 81 #define H5P_GROUP_CREATE_DEFAULT (H5OPEN H5P_LST_GROUP_CREATE_g) 82 #define H5P_GROUP_ACCESS_DEFAULT (H5OPEN H5P_LST_GROUP_ACCESS_g) 83 #define H5P_DATATYPE_CREATE_DEFAULT (H5OPEN H5P_LST_DATATYPE_CREATE_g) 84 #define H5P_DATATYPE_ACCESS_DEFAULT (H5OPEN H5P_LST_DATATYPE_ACCESS_g) 85 #define H5P_ATTRIBUTE_CREATE_DEFAULT (H5OPEN H5P_LST_ATTRIBUTE_CREATE_g) 86 #define H5P_OBJECT_COPY_DEFAULT (H5OPEN H5P_LST_OBJECT_COPY_g) 87 #define H5P_LINK_CREATE_DEFAULT (H5OPEN H5P_LST_LINK_CREATE_g) 88 #define H5P_LINK_ACCESS_DEFAULT (H5OPEN H5P_LST_LINK_ACCESS_g) 89 90 /* Common creation order flags (for links in groups and attributes on objects) */ 91 #define H5P_CRT_ORDER_TRACKED 0x0001 92 #define H5P_CRT_ORDER_INDEXED 0x0002 93 94 #ifdef __cplusplus 95 extern "C" { 96 #endif 97 98 /*******************/ 99 /* Public Typedefs */ 100 /*******************/ 101 102 103 /* Define property list class callback function pointer types */ 104 typedef herr_t (*H5P_cls_create_func_t)(hid_t prop_id, void *create_data); 105 typedef herr_t (*H5P_cls_copy_func_t)(hid_t new_prop_id, hid_t old_prop_id, 106 void *copy_data); 107 typedef herr_t (*H5P_cls_close_func_t)(hid_t prop_id, void *close_data); 108 109 /* Define property list callback function pointer types */ 110 typedef herr_t (*H5P_prp_cb1_t)(const char *name, size_t size, void *value); 111 typedef herr_t (*H5P_prp_cb2_t)(hid_t prop_id, const char *name, size_t size, void *value); 112 typedef H5P_prp_cb1_t H5P_prp_create_func_t; 113 typedef H5P_prp_cb2_t H5P_prp_set_func_t; 114 typedef H5P_prp_cb2_t H5P_prp_get_func_t; 115 typedef H5P_prp_cb2_t H5P_prp_delete_func_t; 116 typedef H5P_prp_cb1_t H5P_prp_copy_func_t; 117 typedef int (*H5P_prp_compare_func_t)(const void *value1, const void *value2, size_t size); 118 typedef H5P_prp_cb1_t H5P_prp_close_func_t; 119 120 /* Define property list iteration function type */ 121 typedef herr_t (*H5P_iterate_t)(hid_t id, const char *name, void *iter_data); 122 123 /********************/ 124 /* Public Variables */ 125 /********************/ 126 127 /* Property list class IDs */ 128 /* (Internal to library, do not use! Use macros above) */ 129 H5_DLLVAR hid_t H5P_CLS_ROOT_g; 130 H5_DLLVAR hid_t H5P_CLS_OBJECT_CREATE_g; 131 H5_DLLVAR hid_t H5P_CLS_FILE_CREATE_g; 132 H5_DLLVAR hid_t H5P_CLS_FILE_ACCESS_g; 133 H5_DLLVAR hid_t H5P_CLS_DATASET_CREATE_g; 134 H5_DLLVAR hid_t H5P_CLS_DATASET_ACCESS_g; 135 H5_DLLVAR hid_t H5P_CLS_DATASET_XFER_g; 136 H5_DLLVAR hid_t H5P_CLS_FILE_MOUNT_g; 137 H5_DLLVAR hid_t H5P_CLS_GROUP_CREATE_g; 138 H5_DLLVAR hid_t H5P_CLS_GROUP_ACCESS_g; 139 H5_DLLVAR hid_t H5P_CLS_DATATYPE_CREATE_g; 140 H5_DLLVAR hid_t H5P_CLS_DATATYPE_ACCESS_g; 141 H5_DLLVAR hid_t H5P_CLS_STRING_CREATE_g; 142 H5_DLLVAR hid_t H5P_CLS_ATTRIBUTE_CREATE_g; 143 H5_DLLVAR hid_t H5P_CLS_OBJECT_COPY_g; 144 H5_DLLVAR hid_t H5P_CLS_LINK_CREATE_g; 145 H5_DLLVAR hid_t H5P_CLS_LINK_ACCESS_g; 146 147 /* Default roperty list IDs */ 148 /* (Internal to library, do not use! Use macros above) */ 149 H5_DLLVAR hid_t H5P_LST_FILE_CREATE_g; 150 H5_DLLVAR hid_t H5P_LST_FILE_ACCESS_g; 151 H5_DLLVAR hid_t H5P_LST_DATASET_CREATE_g; 152 H5_DLLVAR hid_t H5P_LST_DATASET_ACCESS_g; 153 H5_DLLVAR hid_t H5P_LST_DATASET_XFER_g; 154 H5_DLLVAR hid_t H5P_LST_FILE_MOUNT_g; 155 H5_DLLVAR hid_t H5P_LST_GROUP_CREATE_g; 156 H5_DLLVAR hid_t H5P_LST_GROUP_ACCESS_g; 157 H5_DLLVAR hid_t H5P_LST_DATATYPE_CREATE_g; 158 H5_DLLVAR hid_t H5P_LST_DATATYPE_ACCESS_g; 159 H5_DLLVAR hid_t H5P_LST_ATTRIBUTE_CREATE_g; 160 H5_DLLVAR hid_t H5P_LST_OBJECT_COPY_g; 161 H5_DLLVAR hid_t H5P_LST_LINK_CREATE_g; 162 H5_DLLVAR hid_t H5P_LST_LINK_ACCESS_g; 163 164 /*********************/ 165 /* Public Prototypes */ 166 /*********************/ 167 168 /* Generic property list routines */ 169 H5_DLL hid_t H5Pcreate_class(hid_t parent, const char *name, 170 H5P_cls_create_func_t cls_create, void *create_data, 171 H5P_cls_copy_func_t cls_copy, void *copy_data, 172 H5P_cls_close_func_t cls_close, void *close_data); 173 H5_DLL char *H5Pget_class_name(hid_t pclass_id); 174 H5_DLL hid_t H5Pcreate(hid_t cls_id); 175 H5_DLL herr_t H5Pregister2(hid_t cls_id, const char *name, size_t size, 176 void *def_value, H5P_prp_create_func_t prp_create, 177 H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, 178 H5P_prp_delete_func_t prp_del, H5P_prp_copy_func_t prp_copy, 179 H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); 180 H5_DLL herr_t H5Pinsert2(hid_t plist_id, const char *name, size_t size, 181 void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, 182 H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, 183 H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); 184 H5_DLL herr_t H5Pset(hid_t plist_id, const char *name, void *value); 185 H5_DLL htri_t H5Pexist(hid_t plist_id, const char *name); 186 H5_DLL herr_t H5Pget_size(hid_t id, const char *name, size_t *size); 187 H5_DLL herr_t H5Pget_nprops(hid_t id, size_t *nprops); 188 H5_DLL hid_t H5Pget_class(hid_t plist_id); 189 H5_DLL hid_t H5Pget_class_parent(hid_t pclass_id); 190 H5_DLL herr_t H5Pget(hid_t plist_id, const char *name, void * value); 191 H5_DLL htri_t H5Pequal(hid_t id1, hid_t id2); 192 H5_DLL htri_t H5Pisa_class(hid_t plist_id, hid_t pclass_id); 193 H5_DLL int H5Piterate(hid_t id, int *idx, H5P_iterate_t iter_func, 194 void *iter_data); 195 H5_DLL herr_t H5Pcopy_prop(hid_t dst_id, hid_t src_id, const char *name); 196 H5_DLL herr_t H5Premove(hid_t plist_id, const char *name); 197 H5_DLL herr_t H5Punregister(hid_t pclass_id, const char *name); 198 H5_DLL herr_t H5Pclose_class(hid_t plist_id); 199 H5_DLL herr_t H5Pclose(hid_t plist_id); 200 H5_DLL hid_t H5Pcopy(hid_t plist_id); 201 202 /* Object creation property list (OCPL) routines */ 203 H5_DLL herr_t H5Pset_attr_phase_change(hid_t plist_id, unsigned max_compact, unsigned min_dense); 204 H5_DLL herr_t H5Pget_attr_phase_change(hid_t plist_id, unsigned *max_compact, unsigned *min_dense); 205 H5_DLL herr_t H5Pset_attr_creation_order(hid_t plist_id, unsigned crt_order_flags); 206 H5_DLL herr_t H5Pget_attr_creation_order(hid_t plist_id, unsigned *crt_order_flags); 207 H5_DLL herr_t H5Pset_obj_track_times(hid_t plist_id, hbool_t track_times); 208 H5_DLL herr_t H5Pget_obj_track_times(hid_t plist_id, hbool_t *track_times); 209 H5_DLL herr_t H5Pmodify_filter(hid_t plist_id, H5Z_filter_t filter, 210 unsigned int flags, size_t cd_nelmts, 211 const unsigned int cd_values[/*cd_nelmts*/]); 212 H5_DLL herr_t H5Pset_filter(hid_t plist_id, H5Z_filter_t filter, 213 unsigned int flags, size_t cd_nelmts, 214 const unsigned int c_values[]); 215 H5_DLL int H5Pget_nfilters(hid_t plist_id); 216 H5_DLL H5Z_filter_t H5Pget_filter2(hid_t plist_id, unsigned filter, 217 unsigned int *flags/*out*/, 218 size_t *cd_nelmts/*out*/, 219 unsigned cd_values[]/*out*/, 220 size_t namelen, char name[], 221 unsigned *filter_config /*out*/); 222 H5_DLL herr_t H5Pget_filter_by_id2(hid_t plist_id, H5Z_filter_t id, 223 unsigned int *flags/*out*/, size_t *cd_nelmts/*out*/, 224 unsigned cd_values[]/*out*/, size_t namelen, char name[]/*out*/, 225 unsigned *filter_config/*out*/); 226 H5_DLL htri_t H5Pall_filters_avail(hid_t plist_id); 227 H5_DLL herr_t H5Premove_filter(hid_t plist_id, H5Z_filter_t filter); 228 H5_DLL herr_t H5Pset_deflate(hid_t plist_id, unsigned aggression); 229 H5_DLL herr_t H5Pset_fletcher32(hid_t plist_id); 230 231 /* File creation property list (FCPL) routines */ 232 H5_DLL herr_t H5Pget_version(hid_t plist_id, unsigned *boot/*out*/, 233 unsigned *freelist/*out*/, unsigned *stab/*out*/, 234 unsigned *shhdr/*out*/); 235 H5_DLL herr_t H5Pset_userblock(hid_t plist_id, hsize_t size); 236 H5_DLL herr_t H5Pget_userblock(hid_t plist_id, hsize_t *size); 237 H5_DLL herr_t H5Pset_sizes(hid_t plist_id, size_t sizeof_addr, 238 size_t sizeof_size); 239 H5_DLL herr_t H5Pget_sizes(hid_t plist_id, size_t *sizeof_addr/*out*/, 240 size_t *sizeof_size/*out*/); 241 H5_DLL herr_t H5Pset_sym_k(hid_t plist_id, unsigned ik, unsigned lk); 242 H5_DLL herr_t H5Pget_sym_k(hid_t plist_id, unsigned *ik/*out*/, unsigned *lk/*out*/); 243 H5_DLL herr_t H5Pset_istore_k(hid_t plist_id, unsigned ik); 244 H5_DLL herr_t H5Pget_istore_k(hid_t plist_id, unsigned *ik/*out*/); 245 H5_DLL herr_t H5Pset_shared_mesg_nindexes(hid_t plist_id, unsigned nindexes); 246 H5_DLL herr_t H5Pget_shared_mesg_nindexes(hid_t plist_id, unsigned *nindexes); 247 H5_DLL herr_t H5Pset_shared_mesg_index(hid_t plist_id, unsigned index_num, unsigned mesg_type_flags, unsigned min_mesg_size); 248 H5_DLL herr_t H5Pget_shared_mesg_index(hid_t plist_id, unsigned index_num, unsigned *mesg_type_flags, unsigned *min_mesg_size); 249 H5_DLL herr_t H5Pset_shared_mesg_phase_change(hid_t plist_id, unsigned max_list, unsigned min_btree); 250 H5_DLL herr_t H5Pget_shared_mesg_phase_change(hid_t plist_id, unsigned *max_list, unsigned *min_btree); 251 252 253 /* File access property list (FAPL) routines */ 254 H5_DLL herr_t H5Pset_alignment(hid_t fapl_id, hsize_t threshold, 255 hsize_t alignment); 256 H5_DLL herr_t H5Pget_alignment(hid_t fapl_id, hsize_t *threshold/*out*/, 257 hsize_t *alignment/*out*/); 258 H5_DLL herr_t H5Pset_driver(hid_t plist_id, hid_t driver_id, 259 const void *driver_info); 260 H5_DLL hid_t H5Pget_driver(hid_t plist_id); 261 H5_DLL void *H5Pget_driver_info(hid_t plist_id); 262 H5_DLL herr_t H5Pset_family_offset(hid_t fapl_id, hsize_t offset); 263 H5_DLL herr_t H5Pget_family_offset(hid_t fapl_id, hsize_t *offset); 264 H5_DLL herr_t H5Pset_multi_type(hid_t fapl_id, H5FD_mem_t type); 265 H5_DLL herr_t H5Pget_multi_type(hid_t fapl_id, H5FD_mem_t *type); 266 H5_DLL herr_t H5Pset_cache(hid_t plist_id, int mdc_nelmts, 267 size_t rdcc_nslots, size_t rdcc_nbytes, 268 double rdcc_w0); 269 H5_DLL herr_t H5Pget_cache(hid_t plist_id, 270 int *mdc_nelmts, /* out */ 271 size_t *rdcc_nslots/*out*/, 272 size_t *rdcc_nbytes/*out*/, double *rdcc_w0); 273 H5_DLL herr_t H5Pset_mdc_config(hid_t plist_id, 274 H5AC_cache_config_t * config_ptr); 275 H5_DLL herr_t H5Pget_mdc_config(hid_t plist_id, 276 H5AC_cache_config_t * config_ptr); /* out */ 277 H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref); 278 H5_DLL herr_t H5Pget_gc_references(hid_t fapl_id, unsigned *gc_ref/*out*/); 279 H5_DLL herr_t H5Pset_fclose_degree(hid_t fapl_id, H5F_close_degree_t degree); 280 H5_DLL herr_t H5Pget_fclose_degree(hid_t fapl_id, H5F_close_degree_t *degree); 281 H5_DLL herr_t H5Pset_meta_block_size(hid_t fapl_id, hsize_t size); 282 H5_DLL herr_t H5Pget_meta_block_size(hid_t fapl_id, hsize_t *size/*out*/); 283 H5_DLL herr_t H5Pset_sieve_buf_size(hid_t fapl_id, size_t size); 284 H5_DLL herr_t H5Pget_sieve_buf_size(hid_t fapl_id, size_t *size/*out*/); 285 H5_DLL herr_t H5Pset_small_data_block_size(hid_t fapl_id, hsize_t size); 286 H5_DLL herr_t H5Pget_small_data_block_size(hid_t fapl_id, hsize_t *size/*out*/); 287 H5_DLL herr_t H5Pset_libver_bounds(hid_t plist_id, H5F_libver_t low, 288 H5F_libver_t high); 289 H5_DLL herr_t H5Pget_libver_bounds(hid_t plist_id, H5F_libver_t *low, 290 H5F_libver_t *high); 291 292 /* Dataset creation property list (DCPL) routines */ 293 H5_DLL herr_t H5Pset_layout(hid_t plist_id, H5D_layout_t layout); 294 H5_DLL H5D_layout_t H5Pget_layout(hid_t plist_id); 295 H5_DLL herr_t H5Pset_chunk(hid_t plist_id, int ndims, const hsize_t dim[/*ndims*/]); 296 H5_DLL int H5Pget_chunk(hid_t plist_id, int max_ndims, hsize_t dim[]/*out*/); 297 H5_DLL herr_t H5Pset_external(hid_t plist_id, const char *name, off_t offset, 298 hsize_t size); 299 H5_DLL int H5Pget_external_count(hid_t plist_id); 300 H5_DLL herr_t H5Pget_external(hid_t plist_id, unsigned idx, size_t name_size, 301 char *name/*out*/, off_t *offset/*out*/, 302 hsize_t *size/*out*/); 303 H5_DLL herr_t H5Pset_szip(hid_t plist_id, unsigned options_mask, unsigned pixels_per_block); 304 H5_DLL herr_t H5Pset_shuffle(hid_t plist_id); 305 H5_DLL herr_t H5Pset_nbit(hid_t plist_id); 306 H5_DLL herr_t H5Pset_scaleoffset(hid_t plist_id, H5Z_SO_scale_type_t scale_type, int scale_factor); 307 H5_DLL herr_t H5Pset_fill_value(hid_t plist_id, hid_t type_id, 308 const void *value); 309 H5_DLL herr_t H5Pget_fill_value(hid_t plist_id, hid_t type_id, 310 void *value/*out*/); 311 H5_DLL herr_t H5Pfill_value_defined(hid_t plist, H5D_fill_value_t *status); 312 H5_DLL herr_t H5Pset_alloc_time(hid_t plist_id, H5D_alloc_time_t 313 alloc_time); 314 H5_DLL herr_t H5Pget_alloc_time(hid_t plist_id, H5D_alloc_time_t 315 *alloc_time/*out*/); 316 H5_DLL herr_t H5Pset_fill_time(hid_t plist_id, H5D_fill_time_t fill_time); 317 H5_DLL herr_t H5Pget_fill_time(hid_t plist_id, H5D_fill_time_t 318 *fill_time/*out*/); 319 320 /* Dataset access property list (DAPL) routines */ 321 H5_DLL herr_t H5Pset_chunk_cache(hid_t dapl_id, size_t rdcc_nslots, 322 size_t rdcc_nbytes, double rdcc_w0); 323 H5_DLL herr_t H5Pget_chunk_cache(hid_t dapl_id, 324 size_t *rdcc_nslots/*out*/, 325 size_t *rdcc_nbytes/*out*/, 326 double *rdcc_w0/*out*/); 327 328 /* Dataset xfer property list (DXPL) routines */ 329 H5_DLL herr_t H5Pset_data_transform(hid_t plist_id, const char* expression); 330 H5_DLL ssize_t H5Pget_data_transform(hid_t plist_id, char* expression /*out*/, size_t size); 331 H5_DLL herr_t H5Pset_buffer(hid_t plist_id, size_t size, void *tconv, 332 void *bkg); 333 H5_DLL size_t H5Pget_buffer(hid_t plist_id, void **tconv/*out*/, 334 void **bkg/*out*/); 335 H5_DLL herr_t H5Pset_preserve(hid_t plist_id, hbool_t status); 336 H5_DLL int H5Pget_preserve(hid_t plist_id); 337 H5_DLL herr_t H5Pset_edc_check(hid_t plist_id, H5Z_EDC_t check); 338 H5_DLL H5Z_EDC_t H5Pget_edc_check(hid_t plist_id); 339 H5_DLL herr_t H5Pset_filter_callback(hid_t plist_id, H5Z_filter_func_t func, 340 void* op_data); 341 H5_DLL herr_t H5Pset_btree_ratios(hid_t plist_id, double left, double middle, 342 double right); 343 H5_DLL herr_t H5Pget_btree_ratios(hid_t plist_id, double *left/*out*/, 344 double *middle/*out*/, 345 double *right/*out*/); 346 H5_DLL herr_t H5Pset_vlen_mem_manager(hid_t plist_id, 347 H5MM_allocate_t alloc_func, 348 void *alloc_info, H5MM_free_t free_func, 349 void *free_info); 350 H5_DLL herr_t H5Pget_vlen_mem_manager(hid_t plist_id, 351 H5MM_allocate_t *alloc_func, 352 void **alloc_info, 353 H5MM_free_t *free_func, 354 void **free_info); 355 H5_DLL herr_t H5Pset_hyper_vector_size(hid_t fapl_id, size_t size); 356 H5_DLL herr_t H5Pget_hyper_vector_size(hid_t fapl_id, size_t *size/*out*/); 357 H5_DLL herr_t H5Pset_type_conv_cb(hid_t dxpl_id, H5T_conv_except_func_t op, void* operate_data); 358 H5_DLL herr_t H5Pget_type_conv_cb(hid_t dxpl_id, H5T_conv_except_func_t *op, void** operate_data); 359 360 /* Link creation property list (LCPL) routines */ 361 H5_DLL herr_t H5Pset_create_intermediate_group(hid_t plist_id, unsigned crt_intmd); 362 H5_DLL herr_t H5Pget_create_intermediate_group(hid_t plist_id, unsigned *crt_intmd /*out*/); 363 364 /* Group creation property list (GCPL) routines */ 365 H5_DLL herr_t H5Pset_local_heap_size_hint(hid_t plist_id, size_t size_hint); 366 H5_DLL herr_t H5Pget_local_heap_size_hint(hid_t plist_id, size_t *size_hint /*out*/); 367 H5_DLL herr_t H5Pset_link_phase_change(hid_t plist_id, unsigned max_compact, unsigned min_dense); 368 H5_DLL herr_t H5Pget_link_phase_change(hid_t plist_id, unsigned *max_compact /*out*/, unsigned *min_dense /*out*/); 369 H5_DLL herr_t H5Pset_est_link_info(hid_t plist_id, unsigned est_num_entries, unsigned est_name_len); 370 H5_DLL herr_t H5Pget_est_link_info(hid_t plist_id, unsigned *est_num_entries /* out */, unsigned *est_name_len /* out */); 371 H5_DLL herr_t H5Pset_link_creation_order(hid_t plist_id, unsigned crt_order_flags); 372 H5_DLL herr_t H5Pget_link_creation_order(hid_t plist_id, unsigned *crt_order_flags /* out */); 373 374 /* String creation property list (STRCPL) routines */ 375 H5_DLL herr_t H5Pset_char_encoding(hid_t plist_id, H5T_cset_t encoding); 376 H5_DLL herr_t H5Pget_char_encoding(hid_t plist_id, H5T_cset_t *encoding /*out*/); 377 378 /* Link access property list (LAPL) routines */ 379 H5_DLL herr_t H5Pset_nlinks(hid_t plist_id, size_t nlinks); 380 H5_DLL herr_t H5Pget_nlinks(hid_t plist_id, size_t *nlinks); 381 H5_DLL herr_t H5Pset_elink_prefix(hid_t plist_id, const char *prefix); 382 H5_DLL ssize_t H5Pget_elink_prefix(hid_t plist_id, char *prefix, size_t size); 383 H5_DLL hid_t H5Pget_elink_fapl(hid_t lapl_id); 384 H5_DLL herr_t H5Pset_elink_fapl(hid_t lapl_id, hid_t fapl_id); 385 H5_DLL herr_t H5Pset_elink_acc_flags(hid_t lapl_id, unsigned flags); 386 H5_DLL herr_t H5Pget_elink_acc_flags(hid_t lapl_id, unsigned *flags); 387 H5_DLL herr_t H5Pset_elink_cb(hid_t lapl_id, H5L_elink_traverse_t func, void *op_data); 388 H5_DLL herr_t H5Pget_elink_cb(hid_t lapl_id, H5L_elink_traverse_t *func, void **op_data); 389 390 /* Object copy property list (OCPYPL) routines */ 391 H5_DLL herr_t H5Pset_copy_object(hid_t plist_id, unsigned crt_intmd); 392 H5_DLL herr_t H5Pget_copy_object(hid_t plist_id, unsigned *crt_intmd /*out*/); 393 394 /* Symbols defined for compatibility with previous versions of the HDF5 API. 395 * 396 * Use of these symbols is deprecated. 397 */ 398 #ifndef H5_NO_DEPRECATED_SYMBOLS 399 400 /* Macros */ 401 402 /* We renamed the "root" of the property list class hierarchy */ 403 #define H5P_NO_CLASS H5P_ROOT 404 405 406 /* Typedefs */ 407 408 409 /* Function prototypes */ 410 H5_DLL herr_t H5Pregister1(hid_t cls_id, const char *name, size_t size, 411 void *def_value, H5P_prp_create_func_t prp_create, 412 H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, 413 H5P_prp_delete_func_t prp_del, H5P_prp_copy_func_t prp_copy, 414 H5P_prp_close_func_t prp_close); 415 H5_DLL herr_t H5Pinsert1(hid_t plist_id, const char *name, size_t size, 416 void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, 417 H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, 418 H5P_prp_close_func_t prp_close); 419 H5_DLL H5Z_filter_t H5Pget_filter1(hid_t plist_id, unsigned filter, 420 unsigned int *flags/*out*/, size_t *cd_nelmts/*out*/, 421 unsigned cd_values[]/*out*/, size_t namelen, char name[]); 422 H5_DLL herr_t H5Pget_filter_by_id1(hid_t plist_id, H5Z_filter_t id, 423 unsigned int *flags/*out*/, size_t *cd_nelmts/*out*/, 424 unsigned cd_values[]/*out*/, size_t namelen, char name[]/*out*/); 425 426 #endif /* H5_NO_DEPRECATED_SYMBOLS */ 427 428 #ifdef __cplusplus 429 } 430 #endif 431 #endif /* _H5Ppublic_H */ 432 433