diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2004-04-07 19:10:59 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2004-04-07 19:10:59 (GMT) |
commit | ad62490f6c3bcd6dcb95ab8095b1b3088b3fa4e2 (patch) | |
tree | 29ead8bd1fdc974bc487c5f81ac701ec99be42e3 /src/H5Dprivate.h | |
parent | dedb402f2ecf65e2f5a43bc64d3fd66690961c7d (diff) | |
download | hdf5-ad62490f6c3bcd6dcb95ab8095b1b3088b3fa4e2.zip hdf5-ad62490f6c3bcd6dcb95ab8095b1b3088b3fa4e2.tar.gz hdf5-ad62490f6c3bcd6dcb95ab8095b1b3088b3fa4e2.tar.bz2 |
[svn-r8317] Purpose:
Code optimization
Description:
Query the dataset creation and transfer properties less often.
Platforms tested:
Solaris 2.7 (arabica)
FreeBSD 4.9 (sleipnir) w/parallel
h5committested
Diffstat (limited to 'src/H5Dprivate.h')
-rw-r--r-- | src/H5Dprivate.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h index c63a0b7..7068ff5 100644 --- a/src/H5Dprivate.h +++ b/src/H5Dprivate.h @@ -22,6 +22,9 @@ #include "H5Dpublic.h" /* Private headers needed by this file */ +#include "H5FDfphdf5.h" +#include "H5FDmpio.h" +#include "H5FDmpiposix.h" #include "H5Oprivate.h" /* Object headers */ /* @@ -46,7 +49,7 @@ #define H5D_CRT_CHUNK_SIZE_NAME "chunk_size" #define H5D_CRT_CHUNK_SIZE_SIZE sizeof(hsize_t[H5O_LAYOUT_NDIMS]) #define H5D_CRT_CHUNK_SIZE_DEF {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\ - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} /* Definitions for fill value. size=0 means fill value will be 0 as * library default; size=-1 means fill value is undefined. */ #define H5D_CRT_FILL_VALUE_NAME "fill_value" @@ -161,6 +164,28 @@ typedef union H5D_storage_t { hssize_t *chunk_coords; /* chunk's coordinates in file chunks */ } H5D_storage_t; +/* Typedef for cached dataset transfer property list information */ +typedef struct H5D_dxpl_cache_t { + size_t max_temp_buf; /* Maximum temporary buffer size (H5D_XFER_MAX_TEMP_BUF_NAME) */ + void *tconv_buf; /* Temporary conversion buffer (H5D_XFER_TCONV_BUF_NAME) */ + void *bkgr_buf; /* Background conversion buffer (H5D_XFER_BKGR_BUF_NAME) */ + H5T_bkg_t bkgr_buf_type; /* Background buffer type (H5D_XFER_BKGR_BUF_NAME) */ + double btree_split_ratio[3];/* B-tree split ratios (H5D_XFER_BTREE_SPLIT_RATIO_NAME) */ + size_t vec_size; /* Size of hyperslab vector (H5D_XFER_HYPER_VECTOR_SIZE_NAME) */ +#ifdef H5_HAVE_PARALLEL + H5FD_mpio_xfer_t xfer_mode; /* Parallel transfer for this request (H5D_XFER_IO_XFER_MODE_NAME) */ +#endif /*H5_HAVE_PARALLEL*/ + H5Z_EDC_t err_detect; /* Error detection info (H5D_XFER_EDC_NAME) */ + H5Z_cb_t filter_cb; /* Filter callback function (H5D_XFER_FILTER_CB_NAME) */ +} H5D_dxpl_cache_t; + +/* Typedef for cached dataset creation property list information */ +typedef struct H5D_dcpl_cache_t { + H5O_pline_t pline; /* I/O pipeline info (H5D_CRT_DATA_PIPELINE_NAME) */ + H5O_fill_t fill; /* Fill value info (H5D_CRT_FILL_VALUE_NAME) */ + H5D_fill_time_t fill_time; /* Fill time (H5D_CRT_FILL_TIME_NAME) */ +} H5D_dcpl_cache_t; + /* Library-private functions defined in H5D package */ H5_DLL herr_t H5D_init(void); H5_DLL hid_t H5D_open(H5G_entry_t *ent, hid_t dxpl_id); @@ -175,5 +200,7 @@ H5_DLL herr_t H5D_xfer_copy(hid_t new_plist_id, hid_t old_plist_id, void *copy_data); H5_DLL herr_t H5D_xfer_close(hid_t dxpl_id, void *close_data); H5_DLL herr_t H5D_flush(H5F_t *f, hid_t dxpl_id); +H5_DLL herr_t H5D_get_dxpl_cache(hid_t dxpl_id, H5D_dxpl_cache_t *cache); +H5_DLL herr_t H5D_get_dxpl_cache_real(hid_t dxpl_id, H5D_dxpl_cache_t *cache); #endif |