summaryrefslogtreecommitdiffstats
path: root/src/H5Pprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2001-08-10 20:47:05 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2001-08-10 20:47:05 (GMT)
commit95862451f78960cab031031011e5c6a131e0d026 (patch)
tree391101ca102fbecbfe9cee1f608b90bb87d49b1a /src/H5Pprivate.h
parent4049965d1337bc54a21a4d3af71aa793e4baf029 (diff)
downloadhdf5-95862451f78960cab031031011e5c6a131e0d026.zip
hdf5-95862451f78960cab031031011e5c6a131e0d026.tar.gz
hdf5-95862451f78960cab031031011e5c6a131e0d026.tar.bz2
[svn-r4324] Purpose:
New Features! Description: Start migrating the internal use of property lists in the library from the older implementation to the new generic property lists. Currently, only the dataset transfer property lists are migrated to the new architecture, all the rest of the property list types are still using the older architecture. Also, the backward compatibility features are not implemented yet, so applications which use dataset transfer properties may need to make the following changes: H5Pcreate(H5P_DATASET_XFER) -> H5Pcreate_list(H5P_DATASET_XFER_NEW) and H5Pclose(<a dataset transfer property list>) -> H5Pclose_list(id) This still may have some bugs in it, especially with Fortran, but I should be wrapping up those later today. Platforms tested: FreeBSD 4.4 (hawkwind)
Diffstat (limited to 'src/H5Pprivate.h')
-rw-r--r--src/H5Pprivate.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/H5Pprivate.h b/src/H5Pprivate.h
index 906826e..93c8beb 100644
--- a/src/H5Pprivate.h
+++ b/src/H5Pprivate.h
@@ -50,6 +50,7 @@ typedef struct H5P_genprop_tag {
H5P_prp_set_func_t set; /* Function to call when a property value is set */
H5P_prp_get_func_t get; /* Function to call when a property value is retrieved */
H5P_prp_delete_func_t del; /* Function to call when a property is deleted */
+ H5P_prp_copy_func_t copy; /* Function to call when a property is copied */
H5P_prp_close_func_t close; /* Function to call when a property is closed */
struct H5P_genprop_tag *next; /* Pointer to the next property in this list */
@@ -70,8 +71,10 @@ typedef struct H5P_genclass_tag {
/* Callback function pointers & info */
H5P_cls_create_func_t create_func; /* Function to call when a property list is created */
void *create_data; /* Pointer to user data to pass along to create callback */
+ H5P_cls_copy_func_t copy_func; /* Function to call when a property list is copied */
+ void *copy_data; /* Pointer to user data to pass along to copy callback */
H5P_cls_close_func_t close_func; /* Function to call when a property list is closed */
- void *close_data; /* Pointer to user data to pass along to close callback */
+ void *close_data; /* Pointer to user data to pass along to close callback */
H5P_genprop_t *props[1]; /* Hash table of pointers to properties in the class */
} H5P_genclass_t;
@@ -93,7 +96,6 @@ typedef struct {
H5F_create_t fcreate; /* File creation properties */
H5F_access_t faccess; /* File access properties */
H5D_create_t dcreate; /* Dataset creation properties */
- H5D_xfer_t dxfer; /* Data transfer properties */
H5F_mprop_t mount; /* Mounting properties */
} u;
H5P_class_t cls; /* Property list class */
@@ -104,7 +106,19 @@ __DLL__ herr_t H5P_init(void);
__DLL__ hid_t H5P_create(H5P_class_t type, H5P_t *plist);
__DLL__ void *H5P_copy(H5P_class_t type, const void *src);
__DLL__ herr_t H5P_close(void *plist);
+__DLL__ herr_t H5P_register(H5P_genclass_t *pclass, const char *name, size_t size,
+ void *def_value, H5P_prp_create_func_t prp_create, H5P_prp_set_func_t prp_set,
+ H5P_prp_get_func_t prp_get, H5P_prp_delete_func_t prp_delete,
+ H5P_prp_copy_func_t prp_copy, H5P_prp_close_func_t prp_close);
+__DLL__ herr_t H5P_get(hid_t plist_id, const char *name, void *value);
+__DLL__ herr_t H5P_set(hid_t plist_id, const char *name, void *value);
__DLL__ H5P_class_t H5P_get_class(hid_t tid);
__DLL__ hid_t H5P_get_driver(hid_t plist_id);
+/* Private functions to "peek" at properties of a certain type */
+__DLL__ uintn H5P_peek_uintn(hid_t plist_id, const char *name);
+__DLL__ hid_t H5P_peek_hid_t(hid_t plist_id, const char *name);
+__DLL__ void *H5P_peek_voidp(hid_t plist_id, const char *name);
+__DLL__ hsize_t H5P_peek_hsize_t(hid_t plist_id, const char *name);
+
#endif