summaryrefslogtreecommitdiffstats
path: root/src/H5Dpkg.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2007-12-06 19:24:30 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2007-12-06 19:24:30 (GMT)
commit74c005fdb21644607cd93b3c2dd9098d9cc7e7c5 (patch)
treee1c2dc64d2fbf66c17e9c67a8cd41b1a81e83ffe /src/H5Dpkg.h
parent110a7d4869b546f5b73ba726f749870e7cd04674 (diff)
downloadhdf5-74c005fdb21644607cd93b3c2dd9098d9cc7e7c5.zip
hdf5-74c005fdb21644607cd93b3c2dd9098d9cc7e7c5.tar.gz
hdf5-74c005fdb21644607cd93b3c2dd9098d9cc7e7c5.tar.bz2
[svn-r14326] Description:
- Keep skip list for tracking chunks with dataset (instead of creating/ destroying it for each I/O operation) and just delete the skip list nodes. - Avoid computations for normalizing selection offset when offset not set. - Avoid updating object modification time twice during dataset creation. - Avoid updating dataset layout message (and object modification time) until dataset is closed. Tested on: FreeBSD/32 6.2 (duty) in debug mode FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Mac OS X/32 10.4.10 (amazon) in debug mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
Diffstat (limited to 'src/H5Dpkg.h')
-rw-r--r--src/H5Dpkg.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h
index 3967cf9..4f4bc35 100644
--- a/src/H5Dpkg.h
+++ b/src/H5Dpkg.h
@@ -143,6 +143,7 @@ typedef struct H5D_rdcc_t {
int nused; /* Number of chunk slots in use */
H5D_chunk_cached_t last; /* Cached copy of last chunk information */
struct H5D_rdcc_ent_t **slot; /* Chunk slots, each points to a chunk*/
+ H5SL_t *sel_chunks; /* Skip list containing information for each chunk selected */
} H5D_rdcc_t;
/* The raw data contiguous data cache */
@@ -166,6 +167,7 @@ typedef struct H5D_shared_t {
H5T_t *type; /* datatype of this dataset */
H5S_t *space; /* dataspace of this dataset */
hbool_t space_dirty; /* Whether the dataspace info needs to be flushed to the file */
+ hbool_t layout_dirty; /* Whether the layout info needs to be flushed to the file */
hid_t dcpl_id; /* dataset creation property id */
H5D_dcpl_cache_t dcpl_cache; /* Cached DCPL values */
H5D_io_ops_t io_ops; /* I/O operations */
@@ -223,7 +225,7 @@ typedef struct H5D_chunk_map_t {
unsigned m_ndims; /* Number of dimensions for memory dataspace */
H5S_sel_type msel_type; /* Selection type in memory */
- H5SL_t *fsel; /* Skip list containing file dataspaces for all chunks */
+ H5SL_t *sel_chunks; /* Skip list containing information for each chunk selected */
hsize_t last_index; /* Index of last chunk operated on */
H5D_chunk_info_t *last_chunk_info; /* Pointer to last chunk's info */
hsize_t chunks[H5O_LAYOUT_NDIMS]; /* Number of chunks in each dimension */
@@ -343,7 +345,7 @@ H5_DLL H5D_t *H5D_create_named(const H5G_loc_t *loc, const char *name,
H5_DLL herr_t H5D_get_space_status(H5D_t *dset, H5D_space_status_t *allocation,
hid_t dxpl_id);
H5_DLL herr_t H5D_alloc_storage(H5F_t *f, hid_t dxpl_id, H5D_t *dset, H5D_time_alloc_t time_alloc,
- hbool_t update_time, hbool_t full_overwrite);
+ hbool_t full_overwrite);
H5_DLL hsize_t H5D_get_storage_size(H5D_t *dset, hid_t dxpl_id);
H5_DLL haddr_t H5D_get_offset(const H5D_t *dset);
H5_DLL herr_t H5D_iterate(void *buf, hid_t type_id, const H5S_t *space,