diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2008-07-15 21:00:15 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2008-07-15 21:00:15 (GMT) |
commit | 516c63299f638bf0f9ab6d58268e8edf28515ed4 (patch) | |
tree | 2fa0ac337fd747bc96d131a0bc72429f32ed97e6 /src/H5Gprivate.h | |
parent | 1572fb46e083a6d44235c77638752777106e86d3 (diff) | |
download | hdf5-516c63299f638bf0f9ab6d58268e8edf28515ed4.zip hdf5-516c63299f638bf0f9ab6d58268e8edf28515ed4.tar.gz hdf5-516c63299f638bf0f9ab6d58268e8edf28515ed4.tar.bz2 |
[svn-r15367] Description:
Add check to avoid mounting the a file on a group twice, then the mounts
are done on the same HDF5 file, but opened with separate H5Fopen calls.
Also add new 'mounted' flag to the H5G_info_t struct, queried with the
H5Gget_info() API call, to allow applications to detect and avoid this
situation.
This probably fixes Bz#1070 also, I'll check with Dan Anov (who reported
a different sort of behavior, but seems to have the same underlying problem).
Tested on:
Mac OS X/32 10.5.4 (amazon)
Linux/64 2.6 (chicago)
Diffstat (limited to 'src/H5Gprivate.h')
-rw-r--r-- | src/H5Gprivate.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/H5Gprivate.h b/src/H5Gprivate.h index c54f11d..ab6abc1 100644 --- a/src/H5Gprivate.h +++ b/src/H5Gprivate.h @@ -101,6 +101,12 @@ H5G_CRT_GINFO_EST_NAME_LEN \ } +/* If the module using this macro is allowed access to the private variables, access them directly */ +#ifdef H5G_PACKAGE +#define H5G_MOUNTED(G) ((G)->shared->mounted) +#else /* H5G_PACKAGE */ +#define H5G_MOUNTED(G) (H5G_mounted(G)) +#endif /* H5G_PACKAGE */ /* Type of operation being performed for call to H5G_name_replace() */ typedef enum { @@ -158,6 +164,7 @@ H5_DLL herr_t H5G_close(H5G_t *grp); H5_DLL herr_t H5G_free_grp_name(H5G_t *grp); H5_DLL herr_t H5G_get_shared_count(H5G_t *grp); H5_DLL herr_t H5G_mount(H5G_t *grp); +H5_DLL hbool_t H5G_mounted(H5G_t *grp); H5_DLL herr_t H5G_unmount(H5G_t *grp); #ifndef H5_NO_DEPRECATED_SYMBOLS H5_DLL H5G_obj_t H5G_map_obj_type(H5O_type_t obj_type); |