H5Ppublic.h

00001 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00002  * Copyright by The HDF Group.                                               *
00003  * Copyright by the Board of Trustees of the University of Illinois.         *
00004  * All rights reserved.                                                      *
00005  *                                                                           *
00006  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
00007  * terms governing use, modification, and redistribution, is contained in    *
00008  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
00009  * of the source code distribution tree; Copyright.html can be found at the  *
00010  * root level of an installed copy of the electronic HDF5 document set and   *
00011  * is linked from the top-level documents page.  It can also be found at     *
00012  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
00013  * access to either file, you may request a copy from help@hdfgroup.org.     *
00014  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
00015 
00016 /*
00017  * This file contains function prototypes for each exported function in the
00018  * H5P module.
00019  */
00020 #ifndef _H5Ppublic_H
00021 #define _H5Ppublic_H
00022 
00023 /* System headers needed by this file */
00024 
00025 /* Public headers needed by this file */
00026 #include "H5public.h"
00027 #include "H5Cpublic.h"
00028 #include "H5Dpublic.h"
00029 #include "H5Fpublic.h"
00030 #include "H5FDpublic.h"
00031 #include "H5Ipublic.h"
00032 #include "H5Lpublic.h"
00033 #include "H5MMpublic.h"
00034 #include "H5Tpublic.h"
00035 #include "H5Zpublic.h"
00036 
00037 
00038 /*****************/
00039 /* Public Macros */
00040 /*****************/
00041 
00042 /* When this header is included from a private HDF5 header, don't make calls to H5open() */
00043 #undef H5OPEN
00044 #ifndef _H5private_H
00045 #define H5OPEN        H5open(),
00046 #else   /* _H5private_H */
00047 #define H5OPEN
00048 #endif  /* _H5private_H */
00049 
00050 /*
00051  * The library's property list classes
00052  */
00053 
00054 #define H5P_ROOT                        (H5OPEN H5P_CLS_ROOT_g)
00055 #define H5P_OBJECT_CREATE               (H5OPEN H5P_CLS_OBJECT_CREATE_g)
00056 #define H5P_FILE_CREATE                 (H5OPEN H5P_CLS_FILE_CREATE_g)
00057 #define H5P_FILE_ACCESS                 (H5OPEN H5P_CLS_FILE_ACCESS_g)
00058 #define H5P_DATASET_CREATE              (H5OPEN H5P_CLS_DATASET_CREATE_g)
00059 #define H5P_DATASET_ACCESS              (H5OPEN H5P_CLS_DATASET_ACCESS_g)
00060 #define H5P_DATASET_XFER                (H5OPEN H5P_CLS_DATASET_XFER_g)
00061 #define H5P_FILE_MOUNT                  (H5OPEN H5P_CLS_FILE_MOUNT_g)
00062 #define H5P_GROUP_CREATE                (H5OPEN H5P_CLS_GROUP_CREATE_g)
00063 #define H5P_GROUP_ACCESS                (H5OPEN H5P_CLS_GROUP_ACCESS_g)
00064 #define H5P_DATATYPE_CREATE             (H5OPEN H5P_CLS_DATATYPE_CREATE_g)
00065 #define H5P_DATATYPE_ACCESS             (H5OPEN H5P_CLS_DATATYPE_ACCESS_g)
00066 #define H5P_STRING_CREATE               (H5OPEN H5P_CLS_STRING_CREATE_g)
00067 #define H5P_ATTRIBUTE_CREATE            (H5OPEN H5P_CLS_ATTRIBUTE_CREATE_g)
00068 #define H5P_OBJECT_COPY                 (H5OPEN H5P_CLS_OBJECT_COPY_g)
00069 #define H5P_LINK_CREATE                 (H5OPEN H5P_CLS_LINK_CREATE_g)
00070 #define H5P_LINK_ACCESS                 (H5OPEN H5P_CLS_LINK_ACCESS_g)
00071 
00072 /*
00073  * The library's default property lists
00074  */
00075 #define H5P_FILE_CREATE_DEFAULT         (H5OPEN H5P_LST_FILE_CREATE_g)
00076 #define H5P_FILE_ACCESS_DEFAULT         (H5OPEN H5P_LST_FILE_ACCESS_g)
00077 #define H5P_DATASET_CREATE_DEFAULT      (H5OPEN H5P_LST_DATASET_CREATE_g)
00078 #define H5P_DATASET_ACCESS_DEFAULT      (H5OPEN H5P_LST_DATASET_ACCESS_g)
00079 #define H5P_DATASET_XFER_DEFAULT        (H5OPEN H5P_LST_DATASET_XFER_g)
00080 #define H5P_FILE_MOUNT_DEFAULT          (H5OPEN H5P_LST_FILE_MOUNT_g)
00081 #define H5P_GROUP_CREATE_DEFAULT        (H5OPEN H5P_LST_GROUP_CREATE_g)
00082 #define H5P_GROUP_ACCESS_DEFAULT        (H5OPEN H5P_LST_GROUP_ACCESS_g)
00083 #define H5P_DATATYPE_CREATE_DEFAULT     (H5OPEN H5P_LST_DATATYPE_CREATE_g)
00084 #define H5P_DATATYPE_ACCESS_DEFAULT     (H5OPEN H5P_LST_DATATYPE_ACCESS_g)
00085 #define H5P_ATTRIBUTE_CREATE_DEFAULT    (H5OPEN H5P_LST_ATTRIBUTE_CREATE_g)
00086 #define H5P_OBJECT_COPY_DEFAULT         (H5OPEN H5P_LST_OBJECT_COPY_g)
00087 #define H5P_LINK_CREATE_DEFAULT         (H5OPEN H5P_LST_LINK_CREATE_g)
00088 #define H5P_LINK_ACCESS_DEFAULT         (H5OPEN H5P_LST_LINK_ACCESS_g)
00089 
00090 /* Common creation order flags (for links in groups and attributes on objects) */
00091 #define H5P_CRT_ORDER_TRACKED           0x0001
00092 #define H5P_CRT_ORDER_INDEXED           0x0002
00093 
00094 #ifdef __cplusplus
00095 extern "C" {
00096 #endif
00097 
00098 /*******************/
00099 /* Public Typedefs */
00100 /*******************/
00101 
00102 
00103 /* Define property list class callback function pointer types */
00104 typedef herr_t (*H5P_cls_create_func_t)(hid_t prop_id, void *create_data);
00105 typedef herr_t (*H5P_cls_copy_func_t)(hid_t new_prop_id, hid_t old_prop_id,
00106                                       void *copy_data);
00107 typedef herr_t (*H5P_cls_close_func_t)(hid_t prop_id, void *close_data);
00108 
00109 /* Define property list callback function pointer types */
00110 typedef herr_t (*H5P_prp_cb1_t)(const char *name, size_t size, void *value);
00111 typedef herr_t (*H5P_prp_cb2_t)(hid_t prop_id, const char *name, size_t size, void *value);
00112 typedef H5P_prp_cb1_t H5P_prp_create_func_t;
00113 typedef H5P_prp_cb2_t H5P_prp_set_func_t;
00114 typedef H5P_prp_cb2_t H5P_prp_get_func_t;
00115 typedef H5P_prp_cb2_t H5P_prp_delete_func_t;
00116 typedef H5P_prp_cb1_t H5P_prp_copy_func_t;
00117 typedef int (*H5P_prp_compare_func_t)(const void *value1, const void *value2, size_t size);
00118 typedef H5P_prp_cb1_t H5P_prp_close_func_t;
00119 
00120 /* Define property list iteration function type */
00121 typedef herr_t (*H5P_iterate_t)(hid_t id, const char *name, void *iter_data);
00122 
00123 /********************/
00124 /* Public Variables */
00125 /********************/
00126 
00127 /* Property list class IDs */
00128 /* (Internal to library, do not use!  Use macros above) */
00129 H5_DLLVAR hid_t H5P_CLS_ROOT_g;
00130 H5_DLLVAR hid_t H5P_CLS_OBJECT_CREATE_g;
00131 H5_DLLVAR hid_t H5P_CLS_FILE_CREATE_g;
00132 H5_DLLVAR hid_t H5P_CLS_FILE_ACCESS_g;
00133 H5_DLLVAR hid_t H5P_CLS_DATASET_CREATE_g;
00134 H5_DLLVAR hid_t H5P_CLS_DATASET_ACCESS_g;
00135 H5_DLLVAR hid_t H5P_CLS_DATASET_XFER_g;
00136 H5_DLLVAR hid_t H5P_CLS_FILE_MOUNT_g;
00137 H5_DLLVAR hid_t H5P_CLS_GROUP_CREATE_g;
00138 H5_DLLVAR hid_t H5P_CLS_GROUP_ACCESS_g;
00139 H5_DLLVAR hid_t H5P_CLS_DATATYPE_CREATE_g;
00140 H5_DLLVAR hid_t H5P_CLS_DATATYPE_ACCESS_g;
00141 H5_DLLVAR hid_t H5P_CLS_STRING_CREATE_g;
00142 H5_DLLVAR hid_t H5P_CLS_ATTRIBUTE_CREATE_g;
00143 H5_DLLVAR hid_t H5P_CLS_OBJECT_COPY_g;
00144 H5_DLLVAR hid_t H5P_CLS_LINK_CREATE_g;
00145 H5_DLLVAR hid_t H5P_CLS_LINK_ACCESS_g;
00146 
00147 /* Default roperty list IDs */
00148 /* (Internal to library, do not use!  Use macros above) */
00149 H5_DLLVAR hid_t H5P_LST_FILE_CREATE_g;
00150 H5_DLLVAR hid_t H5P_LST_FILE_ACCESS_g;
00151 H5_DLLVAR hid_t H5P_LST_DATASET_CREATE_g;
00152 H5_DLLVAR hid_t H5P_LST_DATASET_ACCESS_g;
00153 H5_DLLVAR hid_t H5P_LST_DATASET_XFER_g;
00154 H5_DLLVAR hid_t H5P_LST_FILE_MOUNT_g;
00155 H5_DLLVAR hid_t H5P_LST_GROUP_CREATE_g;
00156 H5_DLLVAR hid_t H5P_LST_GROUP_ACCESS_g;
00157 H5_DLLVAR hid_t H5P_LST_DATATYPE_CREATE_g;
00158 H5_DLLVAR hid_t H5P_LST_DATATYPE_ACCESS_g;
00159 H5_DLLVAR hid_t H5P_LST_ATTRIBUTE_CREATE_g;
00160 H5_DLLVAR hid_t H5P_LST_OBJECT_COPY_g;
00161 H5_DLLVAR hid_t H5P_LST_LINK_CREATE_g;
00162 H5_DLLVAR hid_t H5P_LST_LINK_ACCESS_g;
00163 
00164 /*********************/
00165 /* Public Prototypes */
00166 /*********************/
00167 
00168 /* Generic property list routines */
00169 H5_DLL hid_t H5Pcreate_class(hid_t parent, const char *name,
00170     H5P_cls_create_func_t cls_create, void *create_data,
00171     H5P_cls_copy_func_t cls_copy, void *copy_data,
00172     H5P_cls_close_func_t cls_close, void *close_data);
00173 H5_DLL char *H5Pget_class_name(hid_t pclass_id);
00174 H5_DLL hid_t H5Pcreate(hid_t cls_id);
00175 H5_DLL herr_t H5Pregister2(hid_t cls_id, const char *name, size_t size,
00176     void *def_value, H5P_prp_create_func_t prp_create,
00177     H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get,
00178     H5P_prp_delete_func_t prp_del, H5P_prp_copy_func_t prp_copy,
00179     H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close);
00180 H5_DLL herr_t H5Pinsert2(hid_t plist_id, const char *name, size_t size,
00181     void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get,
00182     H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy,
00183     H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close);
00184 H5_DLL herr_t H5Pset(hid_t plist_id, const char *name, void *value);
00185 H5_DLL htri_t H5Pexist(hid_t plist_id, const char *name);
00186 H5_DLL herr_t H5Pget_size(hid_t id, const char *name, size_t *size);
00187 H5_DLL herr_t H5Pget_nprops(hid_t id, size_t *nprops);
00188 H5_DLL hid_t H5Pget_class(hid_t plist_id);
00189 H5_DLL hid_t H5Pget_class_parent(hid_t pclass_id);
00190 H5_DLL herr_t H5Pget(hid_t plist_id, const char *name, void * value);
00191 H5_DLL htri_t H5Pequal(hid_t id1, hid_t id2);
00192 H5_DLL htri_t H5Pisa_class(hid_t plist_id, hid_t pclass_id);
00193 H5_DLL int H5Piterate(hid_t id, int *idx, H5P_iterate_t iter_func,
00194             void *iter_data);
00195 H5_DLL herr_t H5Pcopy_prop(hid_t dst_id, hid_t src_id, const char *name);
00196 H5_DLL herr_t H5Premove(hid_t plist_id, const char *name);
00197 H5_DLL herr_t H5Punregister(hid_t pclass_id, const char *name);
00198 H5_DLL herr_t H5Pclose_class(hid_t plist_id);
00199 H5_DLL herr_t H5Pclose(hid_t plist_id);
00200 H5_DLL hid_t H5Pcopy(hid_t plist_id);
00201 
00202 /* Object creation property list (OCPL) routines */
00203 H5_DLL herr_t H5Pset_attr_phase_change(hid_t plist_id, unsigned max_compact, unsigned min_dense);
00204 H5_DLL herr_t H5Pget_attr_phase_change(hid_t plist_id, unsigned *max_compact, unsigned *min_dense);
00205 H5_DLL herr_t H5Pset_attr_creation_order(hid_t plist_id, unsigned crt_order_flags);
00206 H5_DLL herr_t H5Pget_attr_creation_order(hid_t plist_id, unsigned *crt_order_flags);
00207 H5_DLL herr_t H5Pset_obj_track_times(hid_t plist_id, hbool_t track_times);
00208 H5_DLL herr_t H5Pget_obj_track_times(hid_t plist_id, hbool_t *track_times);
00209 H5_DLL herr_t H5Pmodify_filter(hid_t plist_id, H5Z_filter_t filter,
00210         unsigned int flags, size_t cd_nelmts,
00211         const unsigned int cd_values[/*cd_nelmts*/]);
00212 H5_DLL herr_t H5Pset_filter(hid_t plist_id, H5Z_filter_t filter,
00213         unsigned int flags, size_t cd_nelmts,
00214         const unsigned int c_values[]);
00215 H5_DLL int H5Pget_nfilters(hid_t plist_id);
00216 H5_DLL H5Z_filter_t H5Pget_filter2(hid_t plist_id, unsigned filter,
00217        unsigned int *flags/*out*/,
00218        size_t *cd_nelmts/*out*/,
00219        unsigned cd_values[]/*out*/,
00220        size_t namelen, char name[],
00221        unsigned *filter_config /*out*/);
00222 H5_DLL herr_t H5Pget_filter_by_id2(hid_t plist_id, H5Z_filter_t id,
00223        unsigned int *flags/*out*/, size_t *cd_nelmts/*out*/,
00224        unsigned cd_values[]/*out*/, size_t namelen, char name[]/*out*/,
00225        unsigned *filter_config/*out*/);
00226 H5_DLL htri_t H5Pall_filters_avail(hid_t plist_id);
00227 H5_DLL herr_t H5Premove_filter(hid_t plist_id, H5Z_filter_t filter);
00228 H5_DLL herr_t H5Pset_deflate(hid_t plist_id, unsigned aggression);
00229 H5_DLL herr_t H5Pset_fletcher32(hid_t plist_id);
00230 
00231 /* File creation property list (FCPL) routines */
00232 H5_DLL herr_t H5Pget_version(hid_t plist_id, unsigned *boot/*out*/,
00233          unsigned *freelist/*out*/, unsigned *stab/*out*/,
00234          unsigned *shhdr/*out*/);
00235 H5_DLL herr_t H5Pset_userblock(hid_t plist_id, hsize_t size);
00236 H5_DLL herr_t H5Pget_userblock(hid_t plist_id, hsize_t *size);
00237 H5_DLL herr_t H5Pset_sizes(hid_t plist_id, size_t sizeof_addr,
00238        size_t sizeof_size);
00239 H5_DLL herr_t H5Pget_sizes(hid_t plist_id, size_t *sizeof_addr/*out*/,
00240        size_t *sizeof_size/*out*/);
00241 H5_DLL herr_t H5Pset_sym_k(hid_t plist_id, unsigned ik, unsigned lk);
00242 H5_DLL herr_t H5Pget_sym_k(hid_t plist_id, unsigned *ik/*out*/, unsigned *lk/*out*/);
00243 H5_DLL herr_t H5Pset_istore_k(hid_t plist_id, unsigned ik);
00244 H5_DLL herr_t H5Pget_istore_k(hid_t plist_id, unsigned *ik/*out*/);
00245 H5_DLL herr_t H5Pset_shared_mesg_nindexes(hid_t plist_id, unsigned nindexes);
00246 H5_DLL herr_t H5Pget_shared_mesg_nindexes(hid_t plist_id, unsigned *nindexes);
00247 H5_DLL herr_t H5Pset_shared_mesg_index(hid_t plist_id, unsigned index_num, unsigned mesg_type_flags, unsigned min_mesg_size);
00248 H5_DLL herr_t H5Pget_shared_mesg_index(hid_t plist_id, unsigned index_num, unsigned *mesg_type_flags, unsigned *min_mesg_size);
00249 H5_DLL herr_t H5Pset_shared_mesg_phase_change(hid_t plist_id, unsigned max_list, unsigned min_btree);
00250 H5_DLL herr_t H5Pget_shared_mesg_phase_change(hid_t plist_id, unsigned *max_list, unsigned *min_btree);
00251 
00252 
00253 /* File access property list (FAPL) routines */
00254 H5_DLL herr_t H5Pset_alignment(hid_t fapl_id, hsize_t threshold,
00255     hsize_t alignment);
00256 H5_DLL herr_t H5Pget_alignment(hid_t fapl_id, hsize_t *threshold/*out*/,
00257     hsize_t *alignment/*out*/);
00258 H5_DLL herr_t H5Pset_driver(hid_t plist_id, hid_t driver_id,
00259         const void *driver_info);
00260 H5_DLL hid_t H5Pget_driver(hid_t plist_id);
00261 H5_DLL void *H5Pget_driver_info(hid_t plist_id);
00262 H5_DLL herr_t H5Pset_family_offset(hid_t fapl_id, hsize_t offset);
00263 H5_DLL herr_t H5Pget_family_offset(hid_t fapl_id, hsize_t *offset);
00264 H5_DLL herr_t H5Pset_multi_type(hid_t fapl_id, H5FD_mem_t type);
00265 H5_DLL herr_t H5Pget_multi_type(hid_t fapl_id, H5FD_mem_t *type);
00266 H5_DLL herr_t H5Pset_cache(hid_t plist_id, int mdc_nelmts,
00267        size_t rdcc_nslots, size_t rdcc_nbytes,
00268        double rdcc_w0);
00269 H5_DLL herr_t H5Pget_cache(hid_t plist_id,
00270        int *mdc_nelmts, /* out */
00271        size_t *rdcc_nslots/*out*/,
00272        size_t *rdcc_nbytes/*out*/, double *rdcc_w0);
00273 H5_DLL herr_t H5Pset_mdc_config(hid_t    plist_id,
00274        H5AC_cache_config_t * config_ptr);
00275 H5_DLL herr_t H5Pget_mdc_config(hid_t     plist_id,
00276        H5AC_cache_config_t * config_ptr);       /* out */
00277 H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref);
00278 H5_DLL herr_t H5Pget_gc_references(hid_t fapl_id, unsigned *gc_ref/*out*/);
00279 H5_DLL herr_t H5Pset_fclose_degree(hid_t fapl_id, H5F_close_degree_t degree);
00280 H5_DLL herr_t H5Pget_fclose_degree(hid_t fapl_id, H5F_close_degree_t *degree);
00281 H5_DLL herr_t H5Pset_meta_block_size(hid_t fapl_id, hsize_t size);
00282 H5_DLL herr_t H5Pget_meta_block_size(hid_t fapl_id, hsize_t *size/*out*/);
00283 H5_DLL herr_t H5Pset_sieve_buf_size(hid_t fapl_id, size_t size);
00284 H5_DLL herr_t H5Pget_sieve_buf_size(hid_t fapl_id, size_t *size/*out*/);
00285 H5_DLL herr_t H5Pset_small_data_block_size(hid_t fapl_id, hsize_t size);
00286 H5_DLL herr_t H5Pget_small_data_block_size(hid_t fapl_id, hsize_t *size/*out*/);
00287 H5_DLL herr_t H5Pset_libver_bounds(hid_t plist_id, H5F_libver_t low,
00288     H5F_libver_t high);
00289 H5_DLL herr_t H5Pget_libver_bounds(hid_t plist_id, H5F_libver_t *low,
00290     H5F_libver_t *high);
00291 
00292 /* Dataset creation property list (DCPL) routines */
00293 H5_DLL herr_t H5Pset_layout(hid_t plist_id, H5D_layout_t layout);
00294 H5_DLL H5D_layout_t H5Pget_layout(hid_t plist_id);
00295 H5_DLL herr_t H5Pset_chunk(hid_t plist_id, int ndims, const hsize_t dim[/*ndims*/]);
00296 H5_DLL int H5Pget_chunk(hid_t plist_id, int max_ndims, hsize_t dim[]/*out*/);
00297 H5_DLL herr_t H5Pset_external(hid_t plist_id, const char *name, off_t offset,
00298           hsize_t size);
00299 H5_DLL int H5Pget_external_count(hid_t plist_id);
00300 H5_DLL herr_t H5Pget_external(hid_t plist_id, unsigned idx, size_t name_size,
00301           char *name/*out*/, off_t *offset/*out*/,
00302           hsize_t *size/*out*/);
00303 H5_DLL herr_t H5Pset_szip(hid_t plist_id, unsigned options_mask, unsigned pixels_per_block);
00304 H5_DLL herr_t H5Pset_shuffle(hid_t plist_id);
00305 H5_DLL herr_t H5Pset_nbit(hid_t plist_id);
00306 H5_DLL herr_t H5Pset_scaleoffset(hid_t plist_id, H5Z_SO_scale_type_t scale_type, int scale_factor);
00307 H5_DLL herr_t H5Pset_fill_value(hid_t plist_id, hid_t type_id,
00308      const void *value);
00309 H5_DLL herr_t H5Pget_fill_value(hid_t plist_id, hid_t type_id,
00310      void *value/*out*/);
00311 H5_DLL herr_t H5Pfill_value_defined(hid_t plist, H5D_fill_value_t *status);
00312 H5_DLL herr_t H5Pset_alloc_time(hid_t plist_id, H5D_alloc_time_t
00313         alloc_time);
00314 H5_DLL herr_t H5Pget_alloc_time(hid_t plist_id, H5D_alloc_time_t
00315         *alloc_time/*out*/);
00316 H5_DLL herr_t H5Pset_fill_time(hid_t plist_id, H5D_fill_time_t fill_time);
00317 H5_DLL herr_t H5Pget_fill_time(hid_t plist_id, H5D_fill_time_t
00318         *fill_time/*out*/);
00319 
00320 /* Dataset access property list (DAPL) routines */
00321 H5_DLL herr_t H5Pset_chunk_cache(hid_t dapl_id, size_t rdcc_nslots,
00322        size_t rdcc_nbytes, double rdcc_w0);
00323 H5_DLL herr_t H5Pget_chunk_cache(hid_t dapl_id,
00324        size_t *rdcc_nslots/*out*/,
00325        size_t *rdcc_nbytes/*out*/,
00326        double *rdcc_w0/*out*/);
00327 
00328 /* Dataset xfer property list (DXPL) routines */
00329 H5_DLL herr_t H5Pset_data_transform(hid_t plist_id, const char* expression);
00330 H5_DLL ssize_t H5Pget_data_transform(hid_t plist_id, char* expression /*out*/, size_t size);
00331 H5_DLL herr_t H5Pset_buffer(hid_t plist_id, size_t size, void *tconv,
00332         void *bkg);
00333 H5_DLL size_t H5Pget_buffer(hid_t plist_id, void **tconv/*out*/,
00334         void **bkg/*out*/);
00335 H5_DLL herr_t H5Pset_preserve(hid_t plist_id, hbool_t status);
00336 H5_DLL int H5Pget_preserve(hid_t plist_id);
00337 H5_DLL herr_t H5Pset_edc_check(hid_t plist_id, H5Z_EDC_t check);
00338 H5_DLL H5Z_EDC_t H5Pget_edc_check(hid_t plist_id);
00339 H5_DLL herr_t H5Pset_filter_callback(hid_t plist_id, H5Z_filter_func_t func,
00340                                      void* op_data);
00341 H5_DLL herr_t H5Pset_btree_ratios(hid_t plist_id, double left, double middle,
00342        double right);
00343 H5_DLL herr_t H5Pget_btree_ratios(hid_t plist_id, double *left/*out*/,
00344        double *middle/*out*/,
00345        double *right/*out*/);
00346 H5_DLL herr_t H5Pset_vlen_mem_manager(hid_t plist_id,
00347                                        H5MM_allocate_t alloc_func,
00348                                        void *alloc_info, H5MM_free_t free_func,
00349                                        void *free_info);
00350 H5_DLL herr_t H5Pget_vlen_mem_manager(hid_t plist_id,
00351                                        H5MM_allocate_t *alloc_func,
00352                                        void **alloc_info,
00353                                        H5MM_free_t *free_func,
00354                                        void **free_info);
00355 H5_DLL herr_t H5Pset_hyper_vector_size(hid_t fapl_id, size_t size);
00356 H5_DLL herr_t H5Pget_hyper_vector_size(hid_t fapl_id, size_t *size/*out*/);
00357 H5_DLL herr_t H5Pset_type_conv_cb(hid_t dxpl_id, H5T_conv_except_func_t op, void* operate_data);
00358 H5_DLL herr_t H5Pget_type_conv_cb(hid_t dxpl_id, H5T_conv_except_func_t *op, void** operate_data);
00359 
00360 /* Link creation property list (LCPL) routines */
00361 H5_DLL herr_t H5Pset_create_intermediate_group(hid_t plist_id, unsigned crt_intmd);
00362 H5_DLL herr_t H5Pget_create_intermediate_group(hid_t plist_id, unsigned *crt_intmd /*out*/);
00363 
00364 /* Group creation property list (GCPL) routines */
00365 H5_DLL herr_t H5Pset_local_heap_size_hint(hid_t plist_id, size_t size_hint);
00366 H5_DLL herr_t H5Pget_local_heap_size_hint(hid_t plist_id, size_t *size_hint /*out*/);
00367 H5_DLL herr_t H5Pset_link_phase_change(hid_t plist_id, unsigned max_compact, unsigned min_dense);
00368 H5_DLL herr_t H5Pget_link_phase_change(hid_t plist_id, unsigned *max_compact /*out*/, unsigned *min_dense /*out*/);
00369 H5_DLL herr_t H5Pset_est_link_info(hid_t plist_id, unsigned est_num_entries, unsigned est_name_len);
00370 H5_DLL herr_t H5Pget_est_link_info(hid_t plist_id, unsigned *est_num_entries /* out */, unsigned *est_name_len /* out */);
00371 H5_DLL herr_t H5Pset_link_creation_order(hid_t plist_id, unsigned crt_order_flags);
00372 H5_DLL herr_t H5Pget_link_creation_order(hid_t plist_id, unsigned *crt_order_flags /* out */);
00373 
00374 /* String creation property list (STRCPL) routines */
00375 H5_DLL herr_t H5Pset_char_encoding(hid_t plist_id, H5T_cset_t encoding);
00376 H5_DLL herr_t H5Pget_char_encoding(hid_t plist_id, H5T_cset_t *encoding /*out*/);
00377 
00378 /* Link access property list (LAPL) routines */
00379 H5_DLL herr_t H5Pset_nlinks(hid_t plist_id, size_t nlinks);
00380 H5_DLL herr_t H5Pget_nlinks(hid_t plist_id, size_t *nlinks);
00381 H5_DLL herr_t H5Pset_elink_prefix(hid_t plist_id, const char *prefix);
00382 H5_DLL ssize_t H5Pget_elink_prefix(hid_t plist_id, char *prefix, size_t size);
00383 H5_DLL hid_t H5Pget_elink_fapl(hid_t lapl_id);
00384 H5_DLL herr_t H5Pset_elink_fapl(hid_t lapl_id, hid_t fapl_id);
00385 H5_DLL herr_t H5Pset_elink_acc_flags(hid_t lapl_id, unsigned flags);
00386 H5_DLL herr_t H5Pget_elink_acc_flags(hid_t lapl_id, unsigned *flags);
00387 H5_DLL herr_t H5Pset_elink_cb(hid_t lapl_id, H5L_elink_traverse_t func, void *op_data);
00388 H5_DLL herr_t H5Pget_elink_cb(hid_t lapl_id, H5L_elink_traverse_t *func, void **op_data);
00389 
00390 /* Object copy property list (OCPYPL) routines */
00391 H5_DLL herr_t H5Pset_copy_object(hid_t plist_id, unsigned crt_intmd);
00392 H5_DLL herr_t H5Pget_copy_object(hid_t plist_id, unsigned *crt_intmd /*out*/);
00393 
00394 /* Symbols defined for compatibility with previous versions of the HDF5 API.
00395  *
00396  * Use of these symbols is deprecated.
00397  */
00398 #ifndef H5_NO_DEPRECATED_SYMBOLS
00399 
00400 /* Macros */
00401 
00402 /* We renamed the "root" of the property list class hierarchy */
00403 #define H5P_NO_CLASS            H5P_ROOT
00404 
00405 
00406 /* Typedefs */
00407 
00408 
00409 /* Function prototypes */
00410 H5_DLL herr_t H5Pregister1(hid_t cls_id, const char *name, size_t size,
00411     void *def_value, H5P_prp_create_func_t prp_create,
00412     H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get,
00413     H5P_prp_delete_func_t prp_del, H5P_prp_copy_func_t prp_copy,
00414     H5P_prp_close_func_t prp_close);
00415 H5_DLL herr_t H5Pinsert1(hid_t plist_id, const char *name, size_t size,
00416     void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get,
00417     H5P_prp_delete_func_t prp_delete, H5P_prp_copy_func_t prp_copy,
00418     H5P_prp_close_func_t prp_close);
00419 H5_DLL H5Z_filter_t H5Pget_filter1(hid_t plist_id, unsigned filter,
00420     unsigned int *flags/*out*/, size_t *cd_nelmts/*out*/,
00421     unsigned cd_values[]/*out*/, size_t namelen, char name[]);
00422 H5_DLL herr_t H5Pget_filter_by_id1(hid_t plist_id, H5Z_filter_t id,
00423     unsigned int *flags/*out*/, size_t *cd_nelmts/*out*/,
00424     unsigned cd_values[]/*out*/, size_t namelen, char name[]/*out*/);
00425 
00426 #endif /* H5_NO_DEPRECATED_SYMBOLS */
00427 
00428 #ifdef __cplusplus
00429 }
00430 #endif
00431 #endif /* _H5Ppublic_H */
00432