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 module hdf5.H5Ppublic; 17 18 /* 19 * This file contains function prototypes for each exported function in the 20 * H5P module. 21 */ 22 23 /* System headers needed by this file */ 24 25 /* Public headers needed by this file */ 26 /++ HEADERS 27 #include "H5ACpublic.h" 28 #include "H5FDpublic.h" 29 #include "H5Lpublic.h" 30 #include "H5Opublic.h" 31 #include "H5MMpublic.h" 32 +/ 33 34 import hdf5.H5public; 35 import hdf5.H5Dpublic; 36 import hdf5.H5Fpublic; 37 import hdf5.H5Ipublic; 38 import hdf5.H5Tpublic; 39 import hdf5.H5Zpublic; 40 41 extern(C): 42 43 /*****************/ 44 /* Public Macros */ 45 /*****************/ 46 47 /* 48 * The library's property list classes 49 */ 50 alias H5P_ROOT = H5P_CLS_ROOT_g; 51 alias H5P_OBJECT_CREATE = H5P_CLS_OBJECT_CREATE_g; 52 alias H5P_FILE_CREATE = H5P_CLS_FILE_CREATE_g; 53 alias H5P_FILE_ACCESS = H5P_CLS_FILE_ACCESS_g; 54 alias H5P_DATASET_CREATE = H5P_CLS_DATASET_CREATE_g; 55 alias H5P_DATASET_ACCESS = H5P_CLS_DATASET_ACCESS_g; 56 alias H5P_DATASET_XFER = H5P_CLS_DATASET_XFER_g; 57 alias H5P_FILE_MOUNT = H5P_CLS_FILE_MOUNT_g; 58 alias H5P_GROUP_CREATE = H5P_CLS_GROUP_CREATE_g; 59 alias H5P_GROUP_ACCESS = H5P_CLS_GROUP_ACCESS_g; 60 alias H5P_DATATYPE_CREATE = H5P_CLS_DATATYPE_CREATE_g; 61 alias H5P_DATATYPE_ACCESS = H5P_CLS_DATATYPE_ACCESS_g; 62 alias H5P_STRING_CREATE = H5P_CLS_STRING_CREATE_g; 63 alias H5P_ATTRIBUTE_CREATE = H5P_CLS_ATTRIBUTE_CREATE_g; 64 alias H5P_OBJECT_COPY = H5P_CLS_OBJECT_COPY_g; 65 alias H5P_LINK_CREATE = H5P_CLS_LINK_CREATE_g; 66 alias H5P_LINK_ACCESS = H5P_CLS_LINK_ACCESS_g; 67 68 /* 69 * The library's default property lists 70 */ 71 alias H5P_FILE_CREATE_DEFAULT = H5P_LST_FILE_CREATE_g; 72 alias H5P_FILE_ACCESS_DEFAULT = H5P_LST_FILE_ACCESS_g; 73 alias H5P_DATASET_CREATE_DEFAULT = H5P_LST_DATASET_CREATE_g; 74 alias H5P_DATASET_ACCESS_DEFAULT = H5P_LST_DATASET_ACCESS_g; 75 alias H5P_DATASET_XFER_DEFAULT = H5P_LST_DATASET_XFER_g; 76 alias H5P_FILE_MOUNT_DEFAULT = H5P_LST_FILE_MOUNT_g; 77 alias H5P_GROUP_CREATE_DEFAULT = H5P_LST_GROUP_CREATE_g; 78 alias H5P_GROUP_ACCESS_DEFAULT = H5P_LST_GROUP_ACCESS_g; 79 alias H5P_DATATYPE_CREATE_DEFAULT = H5P_LST_DATATYPE_CREATE_g; 80 alias H5P_DATATYPE_ACCESS_DEFAULT = H5P_LST_DATATYPE_ACCESS_g; 81 alias H5P_ATTRIBUTE_CREATE_DEFAULT = H5P_LST_ATTRIBUTE_CREATE_g; 82 alias H5P_OBJECT_COPY_DEFAULT = H5P_LST_OBJECT_COPY_g; 83 alias H5P_LINK_CREATE_DEFAULT = H5P_LST_LINK_CREATE_g; 84 alias H5P_LINK_ACCESS_DEFAULT = H5P_LST_LINK_ACCESS_g; 85 86 /* Common creation order flags (for links in groups and attributes on objects) */ 87 enum H5P_CRT_ORDER_TRACKED = 0x0001; 88 enum H5P_CRT_ORDER_INDEXED = 0x0002; 89 90 /*******************/ 91 /* Public Typedefs */ 92 /*******************/ 93 94 /* Define property list class callback function pointer types */ 95 alias H5P_cls_create_func_t = herr_t function(hid_t prop_id, void *create_data); 96 alias H5P_cls_copy_func_t = herr_t function(hid_t new_prop_id, hid_t old_prop_id, void *copy_data); 97 alias H5P_cls_close_func_t = herr_t function(hid_t prop_id, void *close_data); 98 99 /* Define property list callback function pointer types */ 100 alias H5P_prp_cb1_t = herr_t function(const char *name, size_t size, void *value); 101 alias H5P_prp_cb2_t = herr_t function(hid_t prop_id, const char *name, size_t size, void *value); 102 alias H5P_prp_create_func_t = H5P_prp_cb1_t; 103 alias H5P_prp_set_func_t = H5P_prp_cb2_t; 104 alias H5P_prp_get_func_t = H5P_prp_cb2_t; 105 alias H5P_prp_delete_func_t = H5P_prp_cb2_t; 106 alias H5P_prp_copy_func_t = H5P_prp_cb1_t; 107 alias H5P_prp_compare_func_t = int function(const void *value1, const void *value2, size_t size); 108 alias H5P_prp_close_func_t = H5P_prp_cb1_t; 109 110 /* Define property list iteration function type */ 111 alias H5P_iterate_t = herr_t function(hid_t id, const char *name, void *iter_data); 112 113 /* Actual IO mode property */ 114 enum H5D_mpio_actual_chunk_opt_mode_t { 115 /* The default value, H5D_MPIO_NO_CHUNK_OPTIMIZATION, is used for all I/O 116 * operations that do not use chunk optimizations, including non-collective 117 * I/O and contiguous collective I/O. 118 */ 119 H5D_MPIO_NO_CHUNK_OPTIMIZATION = 0, 120 H5D_MPIO_LINK_CHUNK, 121 H5D_MPIO_MULTI_CHUNK 122 } 123 124 enum H5D_mpio_actual_io_mode_t { 125 /* The following four values are conveniently defined as a bit field so that 126 * we can switch from the default to indpendent or collective and then to 127 * mixed without having to check the original value. 128 * 129 * NO_COLLECTIVE means that either collective I/O wasn't requested or that 130 * no I/O took place. 131 * 132 * CHUNK_INDEPENDENT means that collective I/O was requested, but the 133 * chunk optimization scheme chose independent I/O for each chunk. 134 */ 135 H5D_MPIO_NO_COLLECTIVE = 0x0, 136 H5D_MPIO_CHUNK_INDEPENDENT = 0x1, 137 H5D_MPIO_CHUNK_COLLECTIVE = 0x2, 138 H5D_MPIO_CHUNK_MIXED = 0x1 | 0x2, 139 140 /* The contiguous case is separate from the bit field. */ 141 H5D_MPIO_CONTIGUOUS_COLLECTIVE = 0x4 142 } 143 144 /* Broken collective IO property */ 145 enum H5D_mpio_no_collective_cause_t { 146 H5D_MPIO_COLLECTIVE = 0x00, 147 H5D_MPIO_SET_INDEPENDENT = 0x01, 148 H5D_MPIO_DATATYPE_CONVERSION = 0x02, 149 H5D_MPIO_DATA_TRANSFORMS = 0x04, 150 H5D_MPIO_MPI_OPT_TYPES_ENV_VAR_DISABLED = 0x08, 151 H5D_MPIO_NOT_SIMPLE_OR_SCALAR_DATASPACES = 0x10, 152 H5D_MPIO_NOT_CONTIGUOUS_OR_CHUNKED_DATASET = 0x20, 153 H5D_MPIO_FILTERS = 0x40 154 } 155 156 /********************/ 157 /* Public Variables */ 158 /********************/ 159 160 /* Property list class IDs */ 161 /* (Internal to library, do not use! Use macros above) */ 162 extern __gshared hid_t H5P_CLS_ROOT_g; 163 extern __gshared hid_t H5P_CLS_OBJECT_CREATE_g; 164 extern __gshared hid_t H5P_CLS_FILE_CREATE_g; 165 extern __gshared hid_t H5P_CLS_FILE_ACCESS_g; 166 extern __gshared hid_t H5P_CLS_DATASET_CREATE_g; 167 extern __gshared hid_t H5P_CLS_DATASET_ACCESS_g; 168 extern __gshared hid_t H5P_CLS_DATASET_XFER_g; 169 extern __gshared hid_t H5P_CLS_FILE_MOUNT_g; 170 extern __gshared hid_t H5P_CLS_GROUP_CREATE_g; 171 extern __gshared hid_t H5P_CLS_GROUP_ACCESS_g; 172 extern __gshared hid_t H5P_CLS_DATATYPE_CREATE_g; 173 extern __gshared hid_t H5P_CLS_DATATYPE_ACCESS_g; 174 extern __gshared hid_t H5P_CLS_STRING_CREATE_g; 175 extern __gshared hid_t H5P_CLS_ATTRIBUTE_CREATE_g; 176 extern __gshared hid_t H5P_CLS_OBJECT_COPY_g; 177 extern __gshared hid_t H5P_CLS_LINK_CREATE_g; 178 extern __gshared hid_t H5P_CLS_LINK_ACCESS_g; 179 180 /* Default roperty list IDs */ 181 /* (Internal to library, do not use! Use macros above) */ 182 extern __gshared hid_t H5P_LST_FILE_CREATE_g; 183 extern __gshared hid_t H5P_LST_FILE_ACCESS_g; 184 extern __gshared hid_t H5P_LST_DATASET_CREATE_g; 185 extern __gshared hid_t H5P_LST_DATASET_ACCESS_g; 186 extern __gshared hid_t H5P_LST_DATASET_XFER_g; 187 extern __gshared hid_t H5P_LST_FILE_MOUNT_g; 188 extern __gshared hid_t H5P_LST_GROUP_CREATE_g; 189 extern __gshared hid_t H5P_LST_GROUP_ACCESS_g; 190 extern __gshared hid_t H5P_LST_DATATYPE_CREATE_g; 191 extern __gshared hid_t H5P_LST_DATATYPE_ACCESS_g; 192 extern __gshared hid_t H5P_LST_ATTRIBUTE_CREATE_g; 193 extern __gshared hid_t H5P_LST_OBJECT_COPY_g; 194 extern __gshared hid_t H5P_LST_LINK_CREATE_g; 195 extern __gshared hid_t H5P_LST_LINK_ACCESS_g; 196 197 /*********************/ 198 /* Public Prototypes */ 199 /*********************/ 200 201 version(Posix) { 202 203 /* Generic property list routines */ 204 hid_t H5Pcreate_class(hid_t parent, const char *name, 205 H5P_cls_create_func_t cls_create, void *create_data, 206 H5P_cls_copy_func_t cls_copy, void *copy_data, 207 H5P_cls_close_func_t cls_close, void *close_data); 208 char *H5Pget_class_name(hid_t pclass_id); 209 hid_t H5Pcreate(hid_t cls_id); 210 herr_t H5Pregister2(hid_t cls_id, const char *name, size_t size, 211 void *def_value, H5P_prp_create_func_t prp_create, 212 H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, 213 H5P_prp_delete_func_t prp_del, H5P_prp_copy_func_t prp_copy, 214 H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); 215 herr_t H5Pinsert2(hid_t plist_id, const char *name, size_t size, 216 void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, 217 H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, 218 H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); 219 herr_t H5Pset(hid_t plist_id, const char *name, void *value); 220 htri_t H5Pexist(hid_t plist_id, const char *name); 221 herr_t H5Pget_size(hid_t id, const char *name, size_t *size); 222 herr_t H5Pget_nprops(hid_t id, size_t *nprops); 223 hid_t H5Pget_class(hid_t plist_id); 224 hid_t H5Pget_class_parent(hid_t pclass_id); 225 herr_t H5Pget(hid_t plist_id, const char *name, void * value); 226 htri_t H5Pequal(hid_t id1, hid_t id2); 227 htri_t H5Pisa_class(hid_t plist_id, hid_t pclass_id); 228 int H5Piterate(hid_t id, int *idx, H5P_iterate_t iter_func, 229 void *iter_data); 230 herr_t H5Pcopy_prop(hid_t dst_id, hid_t src_id, const char *name); 231 herr_t H5Premove(hid_t plist_id, const char *name); 232 herr_t H5Punregister(hid_t pclass_id, const char *name); 233 herr_t H5Pclose_class(hid_t plist_id); 234 herr_t H5Pclose(hid_t plist_id); 235 hid_t H5Pcopy(hid_t plist_id); 236 237 /* Object creation property list (OCPL) routines */ 238 herr_t H5Pset_attr_phase_change(hid_t plist_id, uint max_compact, uint min_dense); 239 herr_t H5Pget_attr_phase_change(hid_t plist_id, uint *max_compact, uint *min_dense); 240 herr_t H5Pset_attr_creation_order(hid_t plist_id, uint crt_order_flags); 241 herr_t H5Pget_attr_creation_order(hid_t plist_id, uint *crt_order_flags); 242 herr_t H5Pset_obj_track_times(hid_t plist_id, hbool_t track_times); 243 herr_t H5Pget_obj_track_times(hid_t plist_id, hbool_t *track_times); 244 herr_t H5Pmodify_filter(hid_t plist_id, H5Z_filter_t filter, 245 int flags, size_t cd_nelmts, 246 const int[/*cd_nelmts*/] cd_values); 247 herr_t H5Pset_filter(hid_t plist_id, H5Z_filter_t filter, 248 int flags, size_t cd_nelmts, 249 const int[] c_values); 250 int H5Pget_nfilters(hid_t plist_id); 251 H5Z_filter_t H5Pget_filter2(hid_t plist_id, uint filter, 252 int *flags/*out*/, 253 size_t *cd_nelmts/*out*/, 254 uint[] cd_values/*out*/, 255 size_t namelen, char[] name, 256 uint *filter_config /*out*/); 257 herr_t H5Pget_filter_by_id2(hid_t plist_id, H5Z_filter_t id, 258 uint *flags/*out*/, size_t *cd_nelmts/*out*/, 259 int[] cd_values/*out*/, size_t namelen, char[] name/*out*/, 260 int *filter_config/*out*/); 261 htri_t H5Pall_filters_avail(hid_t plist_id); 262 herr_t H5Premove_filter(hid_t plist_id, H5Z_filter_t filter); 263 herr_t H5Pset_deflate(hid_t plist_id, int aggression); 264 herr_t H5Pset_fletcher32(hid_t plist_id); 265 266 /* File creation property list (FCPL) routines */ 267 herr_t H5Pget_version(hid_t plist_id, uint *boot/*out*/, 268 uint *freelist/*out*/, uint *stab/*out*/, 269 uint *shhdr/*out*/); 270 herr_t H5Pset_userblock(hid_t plist_id, hsize_t size); 271 herr_t H5Pget_userblock(hid_t plist_id, hsize_t *size); 272 herr_t H5Pset_sizes(hid_t plist_id, size_t sizeof_addr, 273 size_t sizeof_size); 274 herr_t H5Pget_sizes(hid_t plist_id, size_t *sizeof_addr/*out*/, 275 size_t *sizeof_size/*out*/); 276 herr_t H5Pset_sym_k(hid_t plist_id, uint ik, uint lk); 277 herr_t H5Pget_sym_k(hid_t plist_id, uint *ik/*out*/, uint *lk/*out*/); 278 herr_t H5Pset_istore_k(hid_t plist_id, uint ik); 279 herr_t H5Pget_istore_k(hid_t plist_id, uint *ik/*out*/); 280 herr_t H5Pset_shared_mesg_nindexes(hid_t plist_id, uint nindexes); 281 herr_t H5Pget_shared_mesg_nindexes(hid_t plist_id, uint *nindexes); 282 herr_t H5Pset_shared_mesg_index(hid_t plist_id, uint index_num, uint mesg_type_flags, uint min_mesg_size); 283 herr_t H5Pget_shared_mesg_index(hid_t plist_id, uint index_num, uint *mesg_type_flags, uint *min_mesg_size); 284 herr_t H5Pset_shared_mesg_phase_change(hid_t plist_id, uint max_list, uint min_btree); 285 herr_t H5Pget_shared_mesg_phase_change(hid_t plist_id, uint *max_list, uint *min_btree); 286 287 /* File access property list (FAPL) routines */ 288 herr_t H5Pset_alignment(hid_t fapl_id, hsize_t threshold, 289 hsize_t alignment); 290 herr_t H5Pget_alignment(hid_t fapl_id, hsize_t *threshold/*out*/, 291 hsize_t *alignment/*out*/); 292 herr_t H5Pset_driver(hid_t plist_id, hid_t driver_id, 293 const void *driver_info); 294 hid_t H5Pget_driver(hid_t plist_id); 295 void *H5Pget_driver_info(hid_t plist_id); 296 herr_t H5Pset_family_offset(hid_t fapl_id, hsize_t offset); 297 herr_t H5Pget_family_offset(hid_t fapl_id, hsize_t *offset); 298 /++ 299 herr_t H5Pset_multi_type(hid_t fapl_id, H5FD_mem_t type); 300 herr_t H5Pget_multi_type(hid_t fapl_id, H5FD_mem_t *type); 301 +/ 302 herr_t H5Pset_cache(hid_t plist_id, int mdc_nelmts, 303 size_t rdcc_nslots, size_t rdcc_nbytes, 304 double rdcc_w0); 305 herr_t H5Pget_cache(hid_t plist_id, 306 int *mdc_nelmts, /* out */ 307 size_t *rdcc_nslots/*out*/, 308 size_t *rdcc_nbytes/*out*/, double *rdcc_w0); 309 /++ 310 herr_t H5Pset_mdc_config(hid_t plist_id, 311 H5AC_cache_config_t * config_ptr); 312 herr_t H5Pget_mdc_config(hid_t plist_id, 313 H5AC_cache_config_t * config_ptr); /* out */ 314 +/ 315 herr_t H5Pset_gc_references(hid_t fapl_id, uint gc_ref); 316 herr_t H5Pget_gc_references(hid_t fapl_id, uint *gc_ref/*out*/); 317 herr_t H5Pset_fclose_degree(hid_t fapl_id, H5F_close_degree_t degree); 318 herr_t H5Pget_fclose_degree(hid_t fapl_id, H5F_close_degree_t *degree); 319 herr_t H5Pset_meta_block_size(hid_t fapl_id, hsize_t size); 320 herr_t H5Pget_meta_block_size(hid_t fapl_id, hsize_t *size/*out*/); 321 herr_t H5Pset_sieve_buf_size(hid_t fapl_id, size_t size); 322 herr_t H5Pget_sieve_buf_size(hid_t fapl_id, size_t *size/*out*/); 323 herr_t H5Pset_small_data_block_size(hid_t fapl_id, hsize_t size); 324 herr_t H5Pget_small_data_block_size(hid_t fapl_id, hsize_t *size/*out*/); 325 herr_t H5Pset_libver_bounds(hid_t plist_id, H5F_libver_t low, 326 H5F_libver_t high); 327 herr_t H5Pget_libver_bounds(hid_t plist_id, H5F_libver_t *low, 328 H5F_libver_t *high); 329 herr_t H5Pset_elink_file_cache_size(hid_t plist_id, uint efc_size); 330 herr_t H5Pget_elink_file_cache_size(hid_t plist_id, uint *efc_size); 331 herr_t H5Pset_file_image(hid_t fapl_id, void *buf_ptr, size_t buf_len); 332 herr_t H5Pget_file_image(hid_t fapl_id, void **buf_ptr_ptr, size_t *buf_len_ptr); 333 /++ 334 herr_t H5Pset_file_image_callbacks(hid_t fapl_id, 335 H5FD_file_image_callbacks_t *callbacks_ptr); 336 herr_t H5Pget_file_image_callbacks(hid_t fapl_id, 337 H5FD_file_image_callbacks_t *callbacks_ptr); 338 +/ 339 340 herr_t H5Pset_core_write_tracking(hid_t fapl_id, hbool_t is_enabled, size_t page_size); 341 herr_t H5Pget_core_write_tracking(hid_t fapl_id, hbool_t *is_enabled, size_t *page_size); 342 343 /* Dataset creation property list (DCPL) routines */ 344 herr_t H5Pset_layout(hid_t plist_id, H5D_layout_t layout); 345 H5D_layout_t H5Pget_layout(hid_t plist_id); 346 herr_t H5Pset_chunk(hid_t plist_id, int ndims, const hsize_t *dim/*ndims*/); 347 int H5Pget_chunk(hid_t plist_id, int max_ndims, hsize_t *dim/*out*/); 348 herr_t H5Pset_external(hid_t plist_id, const char *name, off_t offset, 349 hsize_t size); 350 int H5Pget_external_count(hid_t plist_id); 351 herr_t H5Pget_external(hid_t plist_id, uint idx, size_t name_size, 352 char *name/*out*/, off_t *offset/*out*/, 353 hsize_t *size/*out*/); 354 herr_t H5Pset_szip(hid_t plist_id, uint options_mask, uint pixels_per_block); 355 herr_t H5Pset_shuffle(hid_t plist_id); 356 herr_t H5Pset_nbit(hid_t plist_id); 357 herr_t H5Pset_scaleoffset(hid_t plist_id, H5Z_SO_scale_type_t scale_type, int scale_factor); 358 herr_t H5Pset_fill_value(hid_t plist_id, hid_t type_id, 359 const void *value); 360 herr_t H5Pget_fill_value(hid_t plist_id, hid_t type_id, 361 void *value/*out*/); 362 herr_t H5Pfill_value_defined(hid_t plist, H5D_fill_value_t *status); 363 herr_t H5Pset_alloc_time(hid_t plist_id, H5D_alloc_time_t 364 alloc_time); 365 herr_t H5Pget_alloc_time(hid_t plist_id, H5D_alloc_time_t 366 *alloc_time/*out*/); 367 herr_t H5Pset_fill_time(hid_t plist_id, H5D_fill_time_t fill_time); 368 herr_t H5Pget_fill_time(hid_t plist_id, H5D_fill_time_t 369 *fill_time/*out*/); 370 371 /* Dataset access property list (DAPL) routines */ 372 herr_t H5Pset_chunk_cache(hid_t dapl_id, size_t rdcc_nslots, 373 size_t rdcc_nbytes, double rdcc_w0); 374 herr_t H5Pget_chunk_cache(hid_t dapl_id, 375 size_t *rdcc_nslots/*out*/, 376 size_t *rdcc_nbytes/*out*/, 377 double *rdcc_w0/*out*/); 378 379 /* Dataset xfer property list (DXPL) routines */ 380 herr_t H5Pset_data_transform(hid_t plist_id, const char* expression); 381 ssize_t H5Pget_data_transform(hid_t plist_id, char* expression /*out*/, size_t size); 382 herr_t H5Pset_buffer(hid_t plist_id, size_t size, void *tconv, 383 void *bkg); 384 size_t H5Pget_buffer(hid_t plist_id, void **tconv/*out*/, 385 void **bkg/*out*/); 386 herr_t H5Pset_preserve(hid_t plist_id, hbool_t status); 387 int H5Pget_preserve(hid_t plist_id); 388 herr_t H5Pset_edc_check(hid_t plist_id, H5Z_EDC_t check); 389 H5Z_EDC_t H5Pget_edc_check(hid_t plist_id); 390 herr_t H5Pset_filter_callback(hid_t plist_id, H5Z_filter_func_t func, 391 void* op_data); 392 herr_t H5Pset_btree_ratios(hid_t plist_id, double left, double middle, 393 double right); 394 herr_t H5Pget_btree_ratios(hid_t plist_id, double *left/*out*/, 395 double *middle/*out*/, 396 double *right/*out*/); 397 /++ 398 herr_t H5Pset_vlen_mem_manager(hid_t plist_id, 399 H5MM_allocate_t alloc_func, 400 void *alloc_info, H5MM_free_t free_func, 401 void *free_info); 402 herr_t H5Pget_vlen_mem_manager(hid_t plist_id, 403 H5MM_allocate_t *alloc_func, 404 void **alloc_info, 405 H5MM_free_t *free_func, 406 void **free_info); 407 +/ 408 herr_t H5Pset_hyper_vector_size(hid_t fapl_id, size_t size); 409 herr_t H5Pget_hyper_vector_size(hid_t fapl_id, size_t *size/*out*/); 410 herr_t H5Pset_type_conv_cb(hid_t dxpl_id, H5T_conv_except_func_t op, void* operate_data); 411 herr_t H5Pget_type_conv_cb(hid_t dxpl_id, H5T_conv_except_func_t *op, void** operate_data); 412 //#ifdef H5_HAVE_PARALLEL 413 herr_t H5Pget_mpio_actual_chunk_opt_mode(hid_t plist_id, H5D_mpio_actual_chunk_opt_mode_t *actual_chunk_opt_mode); 414 herr_t H5Pget_mpio_actual_io_mode(hid_t plist_id, H5D_mpio_actual_io_mode_t *actual_io_mode); 415 herr_t H5Pget_mpio_no_collective_cause(hid_t plist_id, uint32_t *local_no_collective_cause, uint32_t *global_no_collective_cause); 416 //#endif /* H5_HAVE_PARALLEL */ 417 418 /* Link creation property list (LCPL) routines */ 419 herr_t H5Pset_create_intermediate_group(hid_t plist_id, uint crt_intmd); 420 herr_t H5Pget_create_intermediate_group(hid_t plist_id, uint *crt_intmd /*out*/); 421 422 /* Group creation property list (GCPL) routines */ 423 herr_t H5Pset_local_heap_size_hint(hid_t plist_id, size_t size_hint); 424 herr_t H5Pget_local_heap_size_hint(hid_t plist_id, size_t *size_hint /*out*/); 425 herr_t H5Pset_link_phase_change(hid_t plist_id, uint max_compact, uint min_dense); 426 herr_t H5Pget_link_phase_change(hid_t plist_id, uint *max_compact /*out*/, uint *min_dense /*out*/); 427 herr_t H5Pset_est_link_info(hid_t plist_id, uint est_num_entries, uint est_name_len); 428 herr_t H5Pget_est_link_info(hid_t plist_id, uint *est_num_entries /* out */, uint *est_name_len /* out */); 429 herr_t H5Pset_link_creation_order(hid_t plist_id, uint crt_order_flags); 430 herr_t H5Pget_link_creation_order(hid_t plist_id, uint *crt_order_flags /* out */); 431 432 /* String creation property list (STRCPL) routines */ 433 herr_t H5Pset_char_encoding(hid_t plist_id, H5T_cset_t encoding); 434 herr_t H5Pget_char_encoding(hid_t plist_id, H5T_cset_t *encoding /*out*/); 435 436 /* Link access property list (LAPL) routines */ 437 herr_t H5Pset_nlinks(hid_t plist_id, size_t nlinks); 438 herr_t H5Pget_nlinks(hid_t plist_id, size_t *nlinks); 439 herr_t H5Pset_elink_prefix(hid_t plist_id, const char *prefix); 440 ssize_t H5Pget_elink_prefix(hid_t plist_id, char *prefix, size_t size); 441 hid_t H5Pget_elink_fapl(hid_t lapl_id); 442 herr_t H5Pset_elink_fapl(hid_t lapl_id, hid_t fapl_id); 443 herr_t H5Pset_elink_acc_flags(hid_t lapl_id, uint flags); 444 herr_t H5Pget_elink_acc_flags(hid_t lapl_id, uint *flags); 445 /++ 446 herr_t H5Pset_elink_cb(hid_t lapl_id, H5L_elink_traverse_t func, void *op_data); 447 herr_t H5Pget_elink_cb(hid_t lapl_id, H5L_elink_traverse_t *func, void **op_data); 448 +/ 449 450 /* Object copy property list (OCPYPL) routines */ 451 herr_t H5Pset_copy_object(hid_t plist_id, uint crt_intmd); 452 herr_t H5Pget_copy_object(hid_t plist_id, uint *crt_intmd /*out*/); 453 herr_t H5Padd_merge_committed_dtype_path(hid_t plist_id, const char *path); 454 herr_t H5Pfree_merge_committed_dtype_paths(hid_t plist_id); 455 /++ 456 herr_t H5Pset_mcdt_search_cb(hid_t plist_id, H5O_mcdt_search_cb_t func, void *op_data); 457 herr_t H5Pget_mcdt_search_cb(hid_t plist_id, H5O_mcdt_search_cb_t *func, void **op_data); 458 +/ 459 460 } 461 462 /++ DEPRECATED 463 /* Symbols defined for compatibility with previous versions of the HDF5 API. 464 * 465 * Use of these symbols is deprecated. 466 */ 467 #ifndef H5_NO_DEPRECATED_SYMBOLS 468 469 /* Macros */ 470 471 /* We renamed the "root" of the property list class hierarchy */ 472 #define H5P_NO_CLASS H5P_ROOT 473 474 475 /* Typedefs */ 476 477 /* Function prototypes */ 478 herr_t H5Pregister1(hid_t cls_id, const char *name, size_t size, 479 void *def_value, H5P_prp_create_func_t prp_create, 480 H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, 481 H5P_prp_delete_func_t prp_del, H5P_prp_copy_func_t prp_copy, 482 H5P_prp_close_func_t prp_close); 483 herr_t H5Pinsert1(hid_t plist_id, const char *name, size_t size, 484 void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get, 485 H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy, 486 H5P_prp_close_func_t prp_close); 487 H5Z_filter_t H5Pget_filter1(hid_t plist_id, uint filter, 488 int *flags/*out*/, size_t *cd_nelmts/*out*/, 489 uint[] cd_values/*out*/, size_t namelen, char[] name); 490 herr_t H5Pget_filter_by_id1(hid_t plist_id, H5Z_filter_t id, 491 int *flags/*out*/, size_t *cd_nelmts/*out*/, 492 uint[] cd_values/*out*/, size_t namelen, char[] name/*out*/); 493 494 #endif /* H5_NO_DEPRECATED_SYMBOLS */ 495 +/ 496