diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2011-02-08 17:32:56 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2011-02-08 17:32:56 (GMT) |
commit | 0863d303729a1008b5954984adffa8223997fc2f (patch) | |
tree | cc273980f8c4a225cdde2100698b5300c2e060d2 /src/H5Fpkg.h | |
parent | f3ee1cc38d0604116afbffe72cd98dabfe1014a7 (diff) | |
download | hdf5-0863d303729a1008b5954984adffa8223997fc2f.zip hdf5-0863d303729a1008b5954984adffa8223997fc2f.tar.gz hdf5-0863d303729a1008b5954984adffa8223997fc2f.tar.bz2 |
[svn-r20064] Purpose: Implement external file cache
Description:
Implements a cache of files opened through external links. Adds the public
functions H5Pset_elink_file_cache_size(), H5Pget_elink_file_cache_size(), and
H5Frelease_file_cache().
Tested: jam, amani, heiwa (h5committest), fedora 64.
Diffstat (limited to 'src/H5Fpkg.h')
-rw-r--r-- | src/H5Fpkg.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/H5Fpkg.h b/src/H5Fpkg.h index c98bda4..f63fa98 100644 --- a/src/H5Fpkg.h +++ b/src/H5Fpkg.h @@ -127,6 +127,10 @@ + H5F_SUPERBLOCK_VARLEN_SIZE(v, f)) +/* Forward declaration external file cache struct used below (defined in + * H5Fefc.c) */ +typedef struct H5F_efc_t H5F_efc_t; + /* Structure for metadata & "small [raw] data" block aggregation fields */ struct H5F_blk_aggr_t { unsigned long feature_flag; /* Feature flag type */ @@ -200,6 +204,7 @@ typedef struct H5F_file_t { unsigned nrefs; /* Ref count for times file is opened */ unsigned flags; /* Access Permissions for file */ H5F_mtab_t mtab; /* File mount table */ + H5F_efc_t *efc; /* External file cache */ /* Cached values from FCPL/superblock */ uint8_t sizeof_addr; /* Size of addresses in file */ @@ -328,6 +333,13 @@ H5_DLL herr_t H5F_sfile_add(H5F_file_t *shared); H5_DLL H5F_file_t * H5F_sfile_search(H5FD_t *lf); H5_DLL herr_t H5F_sfile_remove(H5F_file_t *shared); +/* External file cache routines */ +H5_DLL H5F_efc_t *H5F_efc_create(unsigned max_nfiles); +H5_DLL unsigned H5F_efc_max_nfiles(H5F_efc_t *efc); +H5_DLL herr_t H5F_efc_release(H5F_efc_t *efc); +H5_DLL herr_t H5F_efc_destroy(H5F_efc_t *efc); +H5_DLL herr_t H5F_efc_try_close(H5F_t *f); + /* Testing functions */ #ifdef H5F_TESTING H5_DLL herr_t H5F_get_sohm_mesg_count_test(hid_t fid, unsigned type_id, |