summaryrefslogtreecommitdiffstats
path: root/src/H5Oprivate.h
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2015-05-22 16:35:58 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2015-05-22 16:35:58 (GMT)
commit9a8c664ff0d9884b8ce2bde543685245cb73f6bb (patch)
treef6a04fd044a933223aece09d5b855b56384666fd /src/H5Oprivate.h
parent948722cde8db7f53866393ada4c08b88b2a91e3e (diff)
downloadhdf5-9a8c664ff0d9884b8ce2bde543685245cb73f6bb.zip
hdf5-9a8c664ff0d9884b8ce2bde543685245cb73f6bb.tar.gz
hdf5-9a8c664ff0d9884b8ce2bde543685245cb73f6bb.tar.bz2
[svn-r27104] Add support for printf-style source dataset name resolution.
Passes use case test, no regression tests yet. Add functions H5Pset/get_virtual_printf_gap (not tested yet). Other minor fixes/cleanup. Tested: ummon
Diffstat (limited to 'src/H5Oprivate.h')
-rw-r--r--src/H5Oprivate.h27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index 1059e8b..6351dd5 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -412,6 +412,18 @@ typedef struct H5O_storage_compact_t {
void *buf; /* Buffer for compact dataset */
} H5O_storage_compact_t;
+typedef struct H5O_storage_virtual_srcdset_t {
+ struct H5D_t *dset; /* Source dataset */
+ char *file_name; /* Source file name used for virtual dataset mapping */
+ char *dset_name; /* Source dataset name used for virtual dataset mapping */
+ struct H5S_t *virtual_select; /* Selection in the virtual dataset that is mapped to source selection */
+} H5O_storage_virtual_srcdset_t;
+
+typedef struct H5O_storage_virtual_name_seg_t {
+ char *name_segment;
+ struct H5O_storage_virtual_name_seg_t *next;
+} H5O_storage_virtual_name_seg_t;
+
typedef enum H5O_virtual_space_status_t {
H5O_VIRTUAL_STATUS_INVALID = 0, /* Space extent is invalid */
H5O_VIRTUAL_STATUS_SEL_BOUNDS, /* Space extent set to bounds of selection */
@@ -421,13 +433,19 @@ typedef enum H5O_virtual_space_status_t {
typedef struct H5O_storage_virtual_ent_t {
/* Stored */
- char *source_file_name; /* Source file name used for virtual dataset mapping */
- char *source_dset_name; /* Source dataset name used for virtual dataset mapping */
+ H5O_storage_virtual_srcdset_t source_dset; /* Information about the source dataset */
struct H5S_t *source_select; /* Selection in the source dataset for mapping */
- struct H5S_t *virtual_select; /* Selection in the virtual dataset that is mapped to source_select */
/* Not stored */
- struct H5D_t *source_dset; /* Source dataset */
+ H5O_storage_virtual_srcdset_t *sub_dset; /* Array of sub-source dataset info structs */
+ size_t sub_dset_nalloc;
+ size_t sub_dset_nused;
+ H5O_storage_virtual_name_seg_t *parsed_source_file_name;
+ size_t psfn_static_strlen;
+ size_t psfn_nsubs;
+ H5O_storage_virtual_name_seg_t *parsed_source_dset_name;
+ size_t psdn_static_strlen;
+ size_t psdn_nsubs;
int unlim_dim_source; /* Unlimited dimension in source_select */
int unlim_dim_virtual; /* Unlimited dimension in virtual_select */
hsize_t unlim_extent_source; /* Extent of unlimited dimension in source dset last time virtual_select was patched to match selection */
@@ -450,6 +468,7 @@ typedef struct H5O_storage_virtual_t {
size_t list_nalloc; /* Number of slots allocated */
hsize_t min_dims[H5S_MAX_RANK]; /* Minimum extent of VDS (maximum of all non-unlimited selection bounds) */
H5D_vds_view_t view; /* Method for calculating the extent of the virtual dataset with unlimited selections */
+ hsize_t printf_gap; /* Maximum number of sequential missing source datasets before terminating the search for more */
} H5O_storage_virtual_t;
typedef struct H5O_storage_t {