summaryrefslogtreecommitdiffstats
path: root/src/H5VLdaosm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5VLdaosm.h')
-rw-r--r--src/H5VLdaosm.h30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/H5VLdaosm.h b/src/H5VLdaosm.h
index d35773a..f69f69a 100644
--- a/src/H5VLdaosm.h
+++ b/src/H5VLdaosm.h
@@ -47,16 +47,23 @@ extern "C" {
* file */
#define H5VL_DAOSM_SNAP_OPEN_ID "daosm_snap_open"
-/* Common object information */
-typedef struct H5VL_daosm_obj_t {
+/* Common object and attribute information */
+typedef struct H5VL_daosm_item_t {
H5I_type_t type;
struct H5VL_daosm_file_t *file;
int rc;
+} H5VL_daosm_item_t;
+
+/* Common object information */
+typedef struct H5VL_daosm_obj_t {
+ H5VL_daosm_item_t item; /* Must be first */
+ daos_obj_id_t oid;
+ daos_handle_t obj_oh;
} H5VL_daosm_obj_t;
/* The file struct */
typedef struct H5VL_daosm_file_t {
- H5VL_daosm_obj_t common; /* Must be first */
+ H5VL_daosm_item_t item; /* Must be first */
daos_handle_t poh;
daos_handle_t coh;
daos_epoch_t epoch;
@@ -78,24 +85,29 @@ typedef struct H5VL_daosm_file_t {
/* The group struct */
typedef struct H5VL_daosm_group_t {
- H5VL_daosm_obj_t common; /* Must be first */
- daos_obj_id_t oid;
- daos_handle_t obj_oh;
+ H5VL_daosm_obj_t obj; /* Must be first */
hid_t gcpl_id;
hid_t gapl_id;
} H5VL_daosm_group_t;
/* The dataset struct */
typedef struct H5VL_daosm_dset_t {
- H5VL_daosm_obj_t common; /* Must be first */
- daos_obj_id_t oid;
- daos_handle_t obj_oh;
+ H5VL_daosm_obj_t obj; /* Must be first */
hid_t type_id;
hid_t space_id;
hid_t dcpl_id;
hid_t dapl_id;
} H5VL_daosm_dset_t;
+/* The attribute struct */
+typedef struct H5VL_daosm_attr_t {
+ H5VL_daosm_item_t item; /* Must be first */
+ H5VL_daosm_obj_t *parent;
+ char *name;
+ hid_t type_id;
+ hid_t space_id;
+} H5VL_daosm_attr_t;
+
extern hid_t H5VL_DAOSM_g;
H5_DLL hid_t H5VL_daosm_init(void);