diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2014-04-25 19:54:57 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2014-04-25 19:54:57 (GMT) |
commit | 4257a32de13576155efc6df64aa0282bdf074ff1 (patch) | |
tree | 4da2d29685eb8c88e804d6daed0b59830cdbbffa /src/H5Pprivate.h | |
parent | b018ba48ced579975e60362e3acfb6afb1f1d384 (diff) | |
download | hdf5-4257a32de13576155efc6df64aa0282bdf074ff1.zip hdf5-4257a32de13576155efc6df64aa0282bdf074ff1.tar.gz hdf5-4257a32de13576155efc6df64aa0282bdf074ff1.tar.bz2 |
[svn-r25109] Description:
Bring r25084, 25088, 25092, 25097 from trunk to 1.8 branch:
r25084:
Begin process of migrating from using property list IDs internally to the
library to using the internal generic property list data structure.
r25088:
Introduce "file I/O info" struct, to hold file & dxpl pointers, and start
propagating up through library.
r25092:
More migration to using H5F_io_info_t pointers and away from using
property list IDs internally. Also, clean up some compiler warnings in the
cache code.
r25097:
Make progress toward moving from DXPL IDs to property list structures
within the library. Also move the signature location code from the H5F
package to the H5FD package, where it's a better fit. Also, clean up some
more compiler warnings along the way.
Tested:
Mac OSX/64 10.9.2 (amazon) w/C++, FORTRAN & parallel
(h5committested on trunk)
Diffstat (limited to 'src/H5Pprivate.h')
-rw-r--r-- | src/H5Pprivate.h | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/src/H5Pprivate.h b/src/H5Pprivate.h index 72157dc..542fd52 100644 --- a/src/H5Pprivate.h +++ b/src/H5Pprivate.h @@ -24,7 +24,6 @@ /* Private headers needed by this file */ #include "H5private.h" /* Generic Functions */ -#include "H5Oprivate.h" /* Object headers */ /**************************/ /* Library Private Macros */ @@ -33,11 +32,24 @@ /* ======== String creation property names ======== */ #define H5P_STRCRT_CHAR_ENCODING_NAME "character_encoding" /* Character set encoding for string */ +/* If the module using this macro is allowed access to the private variables, access them directly */ +#ifdef H5P_PACKAGE +#define H5P_PLIST_ID(P) ((P)->plist_id) +#define H5P_CLASS(P) ((P)->pclass) +#else /* H5F_PACKAGE */ +#define H5P_PLIST_ID(P) (H5P_get_plist_id(P)) +#define H5P_CLASS(P) (H5P_get_class(P)) +#endif /* H5P_PACKAGE */ + /****************************/ /* Library Private Typedefs */ /****************************/ +/* Forward declarations (for prototypes & type definitions) */ +struct H5O_fill_t; +struct H5T_t; + /* Forward declarations for anonymous H5P objects */ typedef struct H5P_genplist_t H5P_genplist_t; typedef struct H5P_genclass_t H5P_genclass_t; @@ -68,6 +80,25 @@ typedef enum H5P_plist_type_t { /* Library Private Variables */ /*****************************/ +/* Predefined property list classes. */ +H5_DLLVAR H5P_genclass_t *H5P_CLS_ROOT_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_OBJECT_CREATE_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_FILE_CREATE_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_FILE_ACCESS_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_DATASET_CREATE_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_DATASET_ACCESS_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_DATASET_XFER_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_FILE_MOUNT_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_GROUP_CREATE_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_GROUP_ACCESS_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_DATATYPE_CREATE_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_DATATYPE_ACCESS_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_ATTRIBUTE_CREATE_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_OBJECT_COPY_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_LINK_CREATE_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_LINK_ACCESS_g; +H5_DLLVAR H5P_genclass_t *H5P_CLS_STRING_CREATE_g; + /******************************/ /* Library Private Prototypes */ @@ -88,6 +119,7 @@ H5_DLL herr_t H5P_insert(H5P_genplist_t *plist, const char *name, size_t size, H5P_prp_compare_func_t prp_cmp, H5P_prp_close_func_t prp_close); H5_DLL herr_t H5P_remove(hid_t plist_id, H5P_genplist_t *plist, const char *name); H5_DLL htri_t H5P_exist_plist(const H5P_genplist_t *plist, const char *name); +H5_DLL htri_t H5P_class_isa(const H5P_genclass_t *pclass1, const H5P_genclass_t *pclass2); H5_DLL char *H5P_get_class_name(H5P_genclass_t *pclass); H5_DLL herr_t H5P_get_nprops_pclass(const H5P_genclass_t *pclass, size_t *nprops, hbool_t recurse); @@ -98,7 +130,7 @@ H5_DLL herr_t H5P_set_driver(H5P_genplist_t *plist, hid_t new_driver_id, H5_DLL herr_t H5P_set_vlen_mem_manager(H5P_genplist_t *plist, H5MM_allocate_t alloc_func, void *alloc_info, H5MM_free_t free_func, void *free_info); -H5_DLL herr_t H5P_is_fill_value_defined(const H5O_fill_t *fill, +H5_DLL herr_t H5P_is_fill_value_defined(const struct H5O_fill_t *fill, H5D_fill_value_t *status); H5_DLL int H5P_fill_value_cmp(const void *value1, const void *value2, size_t size); @@ -109,6 +141,10 @@ H5_DLL herr_t H5P_get_filter_by_id(H5P_genplist_t *plist, H5Z_filter_t id, size_t namelen, char name[], unsigned *filter_config); H5_DLL htri_t H5P_filter_in_pline(H5P_genplist_t *plist, H5Z_filter_t id); +/* Query internal fields of the property list struct */ +H5_DLL hid_t H5P_get_plist_id(const H5P_genplist_t *plist); +H5_DLL H5P_genclass_t *H5P_get_class(const H5P_genplist_t *plist); + /* *SPECIAL* Don't make more of these! -QAK */ H5_DLL htri_t H5P_isa_class(hid_t plist_id, hid_t pclass_id); H5_DLL H5P_genplist_t *H5P_object_verify(hid_t plist_id, hid_t pclass_id); @@ -122,7 +158,7 @@ H5_DLL size_t H5P_peek_size_t(H5P_genplist_t *plist, const char *name); /* Private DCPL routines */ H5_DLL herr_t H5P_fill_value_defined(H5P_genplist_t *plist, H5D_fill_value_t *status); -H5_DLL herr_t H5P_get_fill_value(H5P_genplist_t *plist, H5T_t *type, +H5_DLL herr_t H5P_get_fill_value(H5P_genplist_t *plist, const struct H5T_t *type, void *value, hid_t dxpl_id); #endif /* _H5Pprivate_H */ |