summaryrefslogtreecommitdiffstats
path: root/src/H5Ppublic.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2000-07-25 17:35:17 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2000-07-25 17:35:17 (GMT)
commit2c8c5f96924b1e143d6047b802eda1aed9003d1c (patch)
tree49d081a241a9fb61c66b2fd6676c2cdba5f57604 /src/H5Ppublic.h
parent2a14d16d805762296e53ab25a6bc8b6a39230c11 (diff)
downloadhdf5-2c8c5f96924b1e143d6047b802eda1aed9003d1c.zip
hdf5-2c8c5f96924b1e143d6047b802eda1aed9003d1c.tar.gz
hdf5-2c8c5f96924b1e143d6047b802eda1aed9003d1c.tar.bz2
[svn-r2444] Checkpoint the Generic Property implementation. It's not active yet, but it's
close. This shouldn't interfere with other development work. (I think.. :-)
Diffstat (limited to 'src/H5Ppublic.h')
-rw-r--r--src/H5Ppublic.h65
1 files changed, 58 insertions, 7 deletions
diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h
index 36731a6..b84ea14 100644
--- a/src/H5Ppublic.h
+++ b/src/H5Ppublic.h
@@ -29,25 +29,76 @@
/* Property list classes */
typedef enum H5P_class_t {
- H5P_NO_CLASS = -1, /*error return value */
- H5P_FILE_CREATE = 0, /*file creation properties */
- H5P_FILE_ACCESS = 1, /*file access properties */
- H5P_DATASET_CREATE = 2, /*dataset creation properties */
- H5P_DATA_XFER = 3, /*data transfer properties */
- H5P_MOUNT = 4, /*file mounting properties */
+ H5P_NO_CLASS = -1, /*error return value */
+ H5P_FILE_CREATE = 0, /*file creation properties */
+ H5P_FILE_ACCESS = 1, /*file access properties */
+ H5P_DATASET_CREATE = 2, /*dataset creation properties */
+ H5P_DATA_XFER = 3, /*data transfer properties */
+ H5P_MOUNT = 4, /*file mounting properties */
- H5P_NCLASSES = 5 /*this must be last! */
+ H5P_NCLASSES = 5 /*this must be last! */
} H5P_class_t;
/* Alias for the previous H5P_DATASER_XFER property list */
/* This should eventually be publicly decommisioned - 10/6/99 - QAK */
#define H5P_DATASET_XFER H5P_DATA_XFER
+/* 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_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_close_func_t)(const char *name, void *value);
+
#ifdef __cplusplus
extern "C" {
#endif
+/*
+ * The library created property list classes
+ */
+#define H5P_NO_CLASS_NEW (H5open(), H5P_NO_CLASS_g)
+#define H5P_NO_CLASS_HASH_SIZE 0
+#define H5P_FILE_CREATE_NEW (H5open(), H5P_FILE_CREATE_g)
+#define H5P_FILE_CREATE_HASH_SIZE 17
+#define H5P_FILE_ACCESS_NEW (H5open(), H5P_FILE_ACCESS_g)
+#define H5P_FILE_ACCESS_HASH_SIZE 17
+#define H5P_DATASET_CREATE_NEW (H5open(), H5P_DATASET_CREATE_g)
+#define H5P_DATASET_CREATE_HASH_SIZE 17
+#define H5P_DATA_XFER_NEW (H5open(), H5P_DATA_XFER_g)
+#define H5P_DATA_XFER_HASH_SIZE 17
+#define H5P_MOUNT_NEW (H5open(), H5P_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_DATA_XFER_g;
+__DLLVAR__ hid_t H5P_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_close_func_t cls_close, void *close_data);
+__DLL__ hid_t H5Pcreate_list(hid_t cls_id);
+__DLL__ herr_t H5Pregister(hid_t class, 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_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_close_func_t prp_close);
+__DLL__ herr_t H5Pset(hid_t plist_id, const char *name, void *value);
+__DLL__ herr_t H5Pexist(hid_t plist_id, const char *name);
+__DLL__ herr_t H5Pget_size(hid_t plist_id, const char *name);
+__DLL__ herr_t H5Pget(hid_t plist_id, const char *name, void * value);
+__DLL__ herr_t H5Premove(hid_t plist_id, const char *name);
+__DLL__ herr_t H5Punregister(hid_t pclass_id, const char *name);
+__DLL__ herr_t H5Pclose_list(hid_t plist_id);
+__DLL__ herr_t H5Pclose_class(hid_t plist_id);
__DLL__ hid_t H5Pcreate(H5P_class_t type);
__DLL__ herr_t H5Pclose(hid_t plist_id);
__DLL__ hid_t H5Pcopy(hid_t plist_id);