diff options
author | Jerome Soumagne <jsoumagne@hdfgroup.org> | 2019-11-26 01:07:44 (GMT) |
---|---|---|
committer | Jerome Soumagne <jsoumagne@hdfgroup.org> | 2019-11-27 20:17:08 (GMT) |
commit | f46494ffd8449fc610798c8af312362608029d3d (patch) | |
tree | bb461430b391552fd4305e4ad2b35ab3f3232555 /src/H5VLnative_object.c | |
parent | b8a56718e40efaf6954a760984b9d513dbff8f7d (diff) | |
download | hdf5-f46494ffd8449fc610798c8af312362608029d3d.zip hdf5-f46494ffd8449fc610798c8af312362608029d3d.tar.gz hdf5-f46494ffd8449fc610798c8af312362608029d3d.tar.bz2 |
Remove H5VL_NATIVE_FILE_GET_FILE_ID and add H5VL_OBJECT_GET_FILE
Remove H5F__get_file_id() and use only private routine instead
Diffstat (limited to 'src/H5VLnative_object.c')
-rw-r--r-- | src/H5VLnative_object.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/H5VLnative_object.c b/src/H5VLnative_object.c index 675d8cf..dfa4eab 100644 --- a/src/H5VLnative_object.c +++ b/src/H5VLnative_object.c @@ -16,10 +16,11 @@ */ #define H5O_FRIEND /* Suppress error about including H5Opkg */ +#define H5F_FRIEND /* Suppress error about including H5Fpkg */ #include "H5private.h" /* Generic Functions */ #include "H5Eprivate.h" /* Error handling */ -#include "H5Fprivate.h" /* Files */ +#include "H5Fpkg.h" /* Files (pkg needed for id_exists) */ #include "H5Gprivate.h" /* Groups */ #include "H5Iprivate.h" /* IDs */ #include "H5Opkg.h" /* Object headers */ @@ -150,6 +151,25 @@ H5VL__native_object_get(void *obj, const H5VL_loc_params_t *loc_params, H5VL_obj HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file or file object") switch(get_type) { + + /* Object file */ + case H5VL_OBJECT_GET_FILE: + { + void **ret = HDva_arg(arguments, void **); + + if(loc_params->type == H5VL_OBJECT_BY_SELF) { + *ret = (void *)loc.oloc->file; + + /* TODO we currently need to set id_exists to TRUE because + * the upper layer will create an ID from the returned + * object. In theory this should not be needed and id_exists + * should be removed once the H5Fmount code gets fixed. */ + loc.oloc->file->id_exists = TRUE; + } else + HGOTO_ERROR(H5E_VOL, H5E_UNSUPPORTED, FAIL, "unknown get_file parameters") + break; + } + /* Object name */ case H5VL_OBJECT_GET_NAME: { |