summaryrefslogtreecommitdiffstats
path: root/src/H5Ppublic.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Ppublic.h')
-rw-r--r--src/H5Ppublic.h62
1 files changed, 42 insertions, 20 deletions
diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h
index ee925dc..ded0a0b 100644
--- a/src/H5Ppublic.h
+++ b/src/H5Ppublic.h
@@ -57,14 +57,16 @@ typedef enum H5P_class_t {
/* Define property list class callback function pointer types */
typedef herr_t (*H5P_cls_create_func_t)(hid_t prop_id, void *create_data);
+typedef herr_t (*H5P_cls_copy_func_t)(hid_t prop_id, void *copy_data);
typedef herr_t (*H5P_cls_close_func_t)(hid_t prop_id, void *close_data);
/* Define property list callback function pointer types */
-typedef herr_t (*H5P_prp_create_func_t)(const char *name, void *def_value);
-typedef herr_t (*H5P_prp_set_func_t)(hid_t prop_id, const char *name, void *value);
-typedef herr_t (*H5P_prp_get_func_t)(hid_t prop_id, const char *name, void *value);
-typedef herr_t (*H5P_prp_delete_func_t)(hid_t prop_id, const char *name, void *value);
-typedef herr_t (*H5P_prp_close_func_t)(const char *name, void *value);
+typedef herr_t (*H5P_prp_create_func_t)(const char *name, size_t size, void *def_value);
+typedef herr_t (*H5P_prp_set_func_t)(hid_t prop_id, const char *name, size_t size, void *value);
+typedef herr_t (*H5P_prp_get_func_t)(hid_t prop_id, const char *name, size_t size, void *value);
+typedef herr_t (*H5P_prp_delete_func_t)(hid_t prop_id, const char *name, size_t size, void *value);
+typedef herr_t (*H5P_prp_copy_func_t)(const char *name, size_t size, void *value);
+typedef herr_t (*H5P_prp_close_func_t)(const char *name, size_t size, void *value);
/* Define property list iteration function type */
typedef herr_t (*H5P_iterate_t)(hid_t id, const char *name, void *iter_data);
@@ -76,38 +78,58 @@ extern "C" {
/*
* The library created property list classes
*/
-#define H5P_NO_CLASS_NEW (H5open(), H5P_NO_CLASS_g)
+#define H5P_NO_CLASS_NEW (H5open(), H5P_CLS_NO_CLASS_g)
#define H5P_NO_CLASS_HASH_SIZE 1 /* 1, not 0, otherwise allocations get weird */
-#define H5P_FILE_CREATE_NEW (H5open(), H5P_FILE_CREATE_g)
+#define H5P_FILE_CREATE_NEW (H5open(), H5P_CLS_FILE_CREATE_g)
#define H5P_FILE_CREATE_HASH_SIZE 17
-#define H5P_FILE_ACCESS_NEW (H5open(), H5P_FILE_ACCESS_g)
+#define H5P_FILE_ACCESS_NEW (H5open(), H5P_CLS_FILE_ACCESS_g)
#define H5P_FILE_ACCESS_HASH_SIZE 17
-#define H5P_DATASET_CREATE_NEW (H5open(), H5P_DATASET_CREATE_g)
+#define H5P_DATASET_CREATE_NEW (H5open(), H5P_CLS_DATASET_CREATE_g)
#define H5P_DATASET_CREATE_HASH_SIZE 17
-#define H5P_DATASET_XFER_NEW (H5open(), H5P_DATASET_XFER_g)
+#define H5P_DATASET_XFER_NEW (H5open(), H5P_CLS_DATASET_XFER_g)
#define H5P_DATASET_XFER_HASH_SIZE 17
-#define H5P_MOUNT_NEW (H5open(), H5P_MOUNT_g)
+#define H5P_MOUNT_NEW (H5open(), H5P_CLS_MOUNT_g)
#define H5P_MOUNT_HASH_SIZE 17
-__DLLVAR__ hid_t H5P_NO_CLASS_g;
-__DLLVAR__ hid_t H5P_FILE_CREATE_g;
-__DLLVAR__ hid_t H5P_FILE_ACCESS_g;
-__DLLVAR__ hid_t H5P_DATASET_CREATE_g;
-__DLLVAR__ hid_t H5P_DATASET_XFER_g;
-__DLLVAR__ hid_t H5P_MOUNT_g;
+__DLLVAR__ hid_t H5P_CLS_NO_CLASS_g;
+__DLLVAR__ hid_t H5P_CLS_FILE_CREATE_g;
+__DLLVAR__ hid_t H5P_CLS_FILE_ACCESS_g;
+__DLLVAR__ hid_t H5P_CLS_DATASET_CREATE_g;
+__DLLVAR__ hid_t H5P_CLS_DATASET_XFER_g;
+__DLLVAR__ hid_t H5P_CLS_MOUNT_g;
+/*
+ * The library created default property lists
+ */
+#define H5P_NO_CLASS_DEFAULT (H5open(), H5P_LST_NO_CLASS_g)
+#define H5P_FILE_CREATE_DEFAULT (H5open(), H5P_LST_FILE_CREATE_g)
+#define H5P_FILE_ACCESS_DEFAULT (H5open(), H5P_LST_FILE_ACCESS_g)
+#define H5P_DATASET_CREATE_DEFAULT (H5open(), H5P_LST_DATASET_CREATE_g)
+#define H5P_DATASET_XFER_DEFAULT (H5open(), H5P_LST_DATASET_XFER_g)
+#define H5P_MOUNT_DEFAULT (H5open(), H5P_LST_MOUNT_g)
+__DLLVAR__ hid_t H5P_LST_NO_CLASS_g;
+__DLLVAR__ hid_t H5P_LST_FILE_CREATE_g;
+__DLLVAR__ hid_t H5P_LST_FILE_ACCESS_g;
+__DLLVAR__ hid_t H5P_LST_DATASET_CREATE_g;
+__DLLVAR__ hid_t H5P_LST_DATASET_XFER_g;
+__DLLVAR__ hid_t H5P_LST_MOUNT_g;
/* Public functions */
__DLL__ hid_t H5Pcreate_class(hid_t parent, const char *name, unsigned hashsize,
H5P_cls_create_func_t cls_create, void *create_data,
+ H5P_cls_copy_func_t cls_copy, void *copy_data,
H5P_cls_close_func_t cls_close, void *close_data);
__DLL__ char *H5Pget_class_name(hid_t pclass_id);
__DLL__ hid_t H5Pcreate_list(hid_t cls_id);
__DLL__ herr_t H5Pregister(hid_t cls_id, 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_del, H5P_prp_close_func_t prp_close);
+ H5P_prp_delete_func_t prp_del,
+ H5P_prp_copy_func_t prp_copy,
+ H5P_prp_close_func_t prp_close);
__DLL__ herr_t H5Pinsert(hid_t plist_id, const char *name, size_t size,
void *value, H5P_prp_set_func_t prp_set, H5P_prp_get_func_t prp_get,
- H5P_prp_delete_func_t prp_delete, H5P_prp_close_func_t prp_close);
+ H5P_prp_delete_func_t prp_delete,
+ H5P_prp_copy_func_t prp_copy,
+ H5P_prp_close_func_t prp_close);
__DLL__ herr_t H5Pset(hid_t plist_id, const char *name, void *value);
__DLL__ htri_t H5Pexist(hid_t plist_id, const char *name);
__DLL__ herr_t H5Pget_size(hid_t id, const char *name, size_t *size);
@@ -116,7 +138,7 @@ __DLL__ hid_t H5Pget_class_new(hid_t plist_id);
__DLL__ hid_t H5Pget_class_parent(hid_t pclass_id);
__DLL__ herr_t H5Pget(hid_t plist_id, const char *name, void * value);
__DLL__ htri_t H5Pequal(hid_t id1, hid_t id2);
-__DLL__ hid_t H5Pisa_class(hid_t plist_id, hid_t pclass_id);
+__DLL__ htri_t H5Pisa_class(hid_t plist_id, hid_t pclass_id);
__DLL__ int H5Piterate(hid_t id, int *idx, H5P_iterate_t iter_func,
void *iter_data);
__DLL__ herr_t H5Premove(hid_t plist_id, const char *name);