summaryrefslogtreecommitdiffstats
path: root/src/H5Dprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2006-11-02 04:54:19 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2006-11-02 04:54:19 (GMT)
commit19c9657f7c4029df52a804c7ed8b4d3b30cc6196 (patch)
tree6601816880f90040ae67df5bd27558c0f0670e86 /src/H5Dprivate.h
parent0f84d2fb15813c10fca48f95772626c34039619d (diff)
downloadhdf5-19c9657f7c4029df52a804c7ed8b4d3b30cc6196.zip
hdf5-19c9657f7c4029df52a804c7ed8b4d3b30cc6196.tar.gz
hdf5-19c9657f7c4029df52a804c7ed8b4d3b30cc6196.tar.bz2
[svn-r12842] Description:
Refactor generic property list initialization code to put property list specific routines in property list modules, instead of scattered to the four winds. Also, introduce property list class initialization objects, to make adding new property list classes in the library easier. Fix daily test failure by using H5Pget_elink_prefix() API routine instead of looking at the "raw" generic property list information. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) w/threadsafe Linux/32 2.4 (heping) w/C++ & FORTRAN Linux/64 2.4 (mir) w/build-all & 1.6 compat
Diffstat (limited to 'src/H5Dprivate.h')
-rw-r--r--src/H5Dprivate.h197
1 files changed, 47 insertions, 150 deletions
diff --git a/src/H5Dprivate.h b/src/H5Dprivate.h
index 537aa76..9a4b024 100644
--- a/src/H5Dprivate.h
+++ b/src/H5Dprivate.h
@@ -40,152 +40,44 @@
# undef H5D_DEBUG
#endif
-/* ======== Dataset creation properties ======== */
-/* Definitions for storage layout property */
-#define H5D_CRT_LAYOUT_NAME "layout"
-#define H5D_CRT_LAYOUT_SIZE sizeof(H5D_layout_t)
-#define H5D_CRT_LAYOUT_DEF H5D_CONTIGUOUS
-/* Definitions for chunk dimensionality property */
-#define H5D_CRT_CHUNK_DIM_NAME "chunk_ndims"
-#define H5D_CRT_CHUNK_DIM_SIZE sizeof(unsigned)
-#define H5D_CRT_CHUNK_DIM_DEF 1
-/* Definitions for chunk size */
-#define H5D_CRT_CHUNK_SIZE_NAME "chunk_size"
-#define H5D_CRT_CHUNK_SIZE_SIZE sizeof(size_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}
-/* 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"
-#define H5D_CRT_FILL_VALUE_SIZE sizeof(H5O_fill_t)
-#define H5D_CRT_FILL_VALUE_DEF {NULL, 0, NULL}
-#define H5D_CRT_FILL_VALUE_CMP H5D_crt_fill_value_cmp
-/* Definitions for space allocation time */
-#define H5D_CRT_ALLOC_TIME_NAME "alloc_time"
-#define H5D_CRT_ALLOC_TIME_SIZE sizeof(H5D_alloc_time_t)
-#define H5D_CRT_ALLOC_TIME_DEF H5D_ALLOC_TIME_LATE
-#define H5D_CRT_ALLOC_TIME_STATE_NAME "alloc_time_state"
-#define H5D_CRT_ALLOC_TIME_STATE_SIZE sizeof(unsigned)
-#define H5D_CRT_ALLOC_TIME_STATE_DEF 1
-/* Definitions for time of fill value writing */
-#define H5D_CRT_FILL_TIME_NAME "fill_time"
-#define H5D_CRT_FILL_TIME_SIZE sizeof(H5D_fill_time_t)
-#define H5D_CRT_FILL_TIME_DEF H5D_FILL_TIME_IFSET
-/* Definitions for external file list */
-#define H5D_CRT_EXT_FILE_LIST_NAME "efl"
-#define H5D_CRT_EXT_FILE_LIST_SIZE sizeof(H5O_efl_t)
-#define H5D_CRT_EXT_FILE_LIST_DEF {HADDR_UNDEF, 0, 0, NULL}
-#define H5D_CRT_EXT_FILE_LIST_CMP H5D_crt_ext_file_list_cmp
-/* Definitions for data filter pipeline */
-#define H5D_CRT_DATA_PIPELINE_NAME "pline"
-#define H5D_CRT_DATA_PIPELINE_SIZE sizeof(H5O_pline_t)
-#define H5D_CRT_DATA_PIPELINE_DEF {0, 0, NULL}
-#define H5D_CRT_DATA_PIPELINE_CMP H5D_crt_data_pipeline_cmp
+/* ======== Dataset creation property names ======== */
+#define H5D_CRT_LAYOUT_NAME "layout" /* Storage layout */
+#define H5D_CRT_CHUNK_DIM_NAME "chunk_ndims" /* Chunk dimensionality */
+#define H5D_CRT_CHUNK_SIZE_NAME "chunk_size" /* Chunk size */
+#define H5D_CRT_FILL_VALUE_NAME "fill_value" /* Fill value */
+#define H5D_CRT_ALLOC_TIME_NAME "alloc_time" /* Space allocation time */
+#define H5D_CRT_ALLOC_TIME_STATE_NAME "alloc_time_state" /* Space allocation time state */
+#define H5D_CRT_FILL_TIME_NAME "fill_time" /* Time of fill value writing */
+#define H5D_CRT_EXT_FILE_LIST_NAME "efl" /* External file list */
+#define H5D_CRT_DATA_PIPELINE_NAME "pline" /* Data filter pipeline */
/* ======== Data transfer properties ======== */
-/* Definitions for maximum temp buffer size property */
-#define H5D_XFER_MAX_TEMP_BUF_NAME "max_temp_buf"
-#define H5D_XFER_MAX_TEMP_BUF_SIZE sizeof(size_t)
-#define H5D_XFER_MAX_TEMP_BUF_DEF (1024*1024)
-/* Definitions for type conversion buffer property */
-#define H5D_XFER_TCONV_BUF_NAME "tconv_buf"
-#define H5D_XFER_TCONV_BUF_SIZE sizeof(void *)
-#define H5D_XFER_TCONV_BUF_DEF NULL
-/* Definitions for background buffer property */
-#define H5D_XFER_BKGR_BUF_NAME "bkgr_buf"
-#define H5D_XFER_BKGR_BUF_SIZE sizeof(void *)
-#define H5D_XFER_BKGR_BUF_DEF NULL
-/* Definitions for background buffer type property */
-#define H5D_XFER_BKGR_BUF_TYPE_NAME "bkgr_buf_type"
-#define H5D_XFER_BKGR_BUF_TYPE_SIZE sizeof(H5T_bkg_t)
-#define H5D_XFER_BKGR_BUF_TYPE_DEF H5T_BKG_NO
-/* Definitions for B-tree node splitting ratio property */
-/* (These default B-tree node splitting ratios are also used for splitting
- * group's B-trees as well as chunked dataset's B-trees - QAK)
- */
-#define H5D_XFER_BTREE_SPLIT_RATIO_NAME "btree_split_ratio"
-#define H5D_XFER_BTREE_SPLIT_RATIO_SIZE sizeof(double[3])
-#define H5D_XFER_BTREE_SPLIT_RATIO_DEF {0.1, 0.5, 0.9}
-/* Definitions for vlen allocation function property */
-#define H5D_XFER_VLEN_ALLOC_NAME "vlen_alloc"
-#define H5D_XFER_VLEN_ALLOC_SIZE sizeof(H5MM_allocate_t)
-#define H5D_XFER_VLEN_ALLOC_DEF NULL
-/* Definitions for vlen allocation info property */
-#define H5D_XFER_VLEN_ALLOC_INFO_NAME "vlen_alloc_info"
-#define H5D_XFER_VLEN_ALLOC_INFO_SIZE sizeof(void *)
-#define H5D_XFER_VLEN_ALLOC_INFO_DEF NULL
-/* Definitions for vlen free function property */
-#define H5D_XFER_VLEN_FREE_NAME "vlen_free"
-#define H5D_XFER_VLEN_FREE_SIZE sizeof(H5MM_free_t)
-#define H5D_XFER_VLEN_FREE_DEF NULL
-/* Definitions for vlen free info property */
-#define H5D_XFER_VLEN_FREE_INFO_NAME "vlen_free_info"
-#define H5D_XFER_VLEN_FREE_INFO_SIZE sizeof(void *)
-#define H5D_XFER_VLEN_FREE_INFO_DEF NULL
-/* Definitions for file driver ID property */
-#define H5D_XFER_VFL_ID_NAME "vfl_id"
-#define H5D_XFER_VFL_ID_SIZE sizeof(hid_t)
-#define H5D_XFER_VFL_ID_DEF H5FD_VFD_DEFAULT
-/* Definitions for file driver info property */
-#define H5D_XFER_VFL_INFO_NAME "vfl_info"
-#define H5D_XFER_VFL_INFO_SIZE sizeof(void *)
-#define H5D_XFER_VFL_INFO_DEF NULL
-/* Definitions for hyperslab vector size property */
-/* (Be cautious about increasing the default size, there are arrays allocated
- * on the stack which depend on it - QAK)
- */
-#define H5D_XFER_HYPER_VECTOR_SIZE_NAME "vec_size"
-#define H5D_XFER_HYPER_VECTOR_SIZE_SIZE sizeof(size_t)
-#define H5D_XFER_HYPER_VECTOR_SIZE_DEF 1024
-/* Definitions for I/O transfer mode property */
-#define H5D_XFER_IO_XFER_MODE_NAME "io_xfer_mode"
-#define H5D_XFER_IO_XFER_MODE_SIZE sizeof(H5FD_mpio_xfer_t)
-#define H5D_XFER_IO_XFER_MODE_DEF H5FD_MPIO_INDEPENDENT
-
-/* Definitions for I/O optimization transfer mode property(using MPI-IO independent IO with file set view) */
-#define H5D_XFER_IO_XFER_OPT_MODE_NAME "io_xfer_opt_mode"
-#define H5D_XFER_IO_XFER_OPT_MODE_SIZE sizeof(H5FD_mpio_collective_opt_t)
-#define H5D_XFER_IO_XFER_OPT_MODE_DEF H5FD_MPIO_COLLECTIVE_IO
-/* Definitions for optimization of MPI-IO transfer mode property */
-#define H5D_XFER_MPIO_COLLECTIVE_OPT_NAME "mpio_collective_opt"
-#define H5D_XFER_MPIO_COLLECTIVE_OPT_SIZE sizeof(H5FD_mpio_collective_opt_t)
-#define H5D_XFER_MPIO_COLLECTIVE_OPT_DEF H5FD_MPIO_COLLECTIVE_IO
-
-#define H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME "mpio_chunk_opt_hard"
-#define H5D_XFER_MPIO_CHUNK_OPT_HARD_SIZE sizeof(H5FD_mpio_chunk_opt_t)
-#define H5D_XFER_MPIO_CHUNK_OPT_HARD_DEF H5FD_MPIO_CHUNK_DEFAULT
-
-#define H5D_XFER_MPIO_CHUNK_OPT_NUM_NAME "mpio_chunk_opt_num"
-#define H5D_XFER_MPIO_CHUNK_OPT_NUM_SIZE sizeof(unsigned)
-#define H5D_XFER_MPIO_CHUNK_OPT_NUM_DEF H5D_ONE_LINK_CHUNK_IO_THRESHOLD
-
-#define H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME "mpio_chunk_opt_ratio"
-#define H5D_XFER_MPIO_CHUNK_OPT_RATIO_SIZE sizeof(unsigned)
-#define H5D_XFER_MPIO_CHUNK_OPT_RATIO_DEF H5D_MULTI_CHUNK_IO_COL_THRESHOLD
-/* Definitions for EDC property */
-#define H5D_XFER_EDC_NAME "err_detect"
-#define H5D_XFER_EDC_SIZE sizeof(H5Z_EDC_t)
-#define H5D_XFER_EDC_DEF H5Z_ENABLE_EDC
-/* Definitions for filter callback function property */
-#define H5D_XFER_FILTER_CB_NAME "filter_cb"
-#define H5D_XFER_FILTER_CB_SIZE sizeof(H5Z_cb_t)
-#define H5D_XFER_FILTER_CB_DEF {NULL,NULL}
-/* Definitions for type conversion callback function property */
-#define H5D_XFER_CONV_CB_NAME "type_conv_cb"
-#define H5D_XFER_CONV_CB_SIZE sizeof(H5T_conv_cb_t)
-#define H5D_XFER_CONV_CB_DEF {NULL,NULL}
-/* Definitions for data transform property */
-#define H5D_XFER_XFORM_NAME "data_transform"
-#define H5D_XFER_XFORM_SIZE sizeof(void *)
-#define H5D_XFER_XFORM_DEF NULL
-#define H5D_XFER_XFORM_DEL H5D_xfer_xform_del
-#define H5D_XFER_XFORM_COPY H5D_xfer_xform_copy
-#define H5D_XFER_XFORM_CLOSE H5D_xfer_xform_close
+#define H5D_XFER_MAX_TEMP_BUF_NAME "max_temp_buf" /* Maximum temp buffer size */
+#define H5D_XFER_TCONV_BUF_NAME "tconv_buf" /* Type conversion buffer */
+#define H5D_XFER_BKGR_BUF_NAME "bkgr_buf" /* Background buffer */
+#define H5D_XFER_BKGR_BUF_TYPE_NAME "bkgr_buf_type" /* Background buffer type */
+#define H5D_XFER_BTREE_SPLIT_RATIO_NAME "btree_split_ratio" /* B-tree node splitting ratio */
+#define H5D_XFER_VLEN_ALLOC_NAME "vlen_alloc" /* Vlen allocation function */
+#define H5D_XFER_VLEN_ALLOC_INFO_NAME "vlen_alloc_info" /* Vlen allocation info */
+#define H5D_XFER_VLEN_FREE_NAME "vlen_free" /* Vlen free function */
+#define H5D_XFER_VLEN_FREE_INFO_NAME "vlen_free_info" /* Vlen free info */
+#define H5D_XFER_VFL_ID_NAME "vfl_id" /* File driver ID */
+#define H5D_XFER_VFL_INFO_NAME "vfl_info" /* File driver info */
+#define H5D_XFER_HYPER_VECTOR_SIZE_NAME "vec_size" /* Hyperslab vector size */
+#ifdef H5_HAVE_PARALLEL
+#define H5D_XFER_IO_XFER_MODE_NAME "io_xfer_mode" /* I/O transfer mode */
+#define H5D_XFER_IO_XFER_OPT_MODE_NAME "io_xfer_opt_mode" /* I/O optimization transfer mode (using MPI-IO independent IO with file set view) */
+#define H5D_XFER_MPIO_COLLECTIVE_OPT_NAME "mpio_collective_opt" /* Optimization of MPI-IO transfer mode */
+#define H5D_XFER_MPIO_CHUNK_OPT_HARD_NAME "mpio_chunk_opt_hard"
+#define H5D_XFER_MPIO_CHUNK_OPT_NUM_NAME "mpio_chunk_opt_num"
+#define H5D_XFER_MPIO_CHUNK_OPT_RATIO_NAME "mpio_chunk_opt_ratio"
+#endif /* H5_HAVE_PARALLEL */
+#define H5D_XFER_EDC_NAME "err_detect" /* EDC */
+#define H5D_XFER_FILTER_CB_NAME "filter_cb" /* Filter callback function */
+#define H5D_XFER_CONV_CB_NAME "type_conv_cb" /* Type conversion callback function */
+#define H5D_XFER_XFORM_NAME "data_transform" /* Data transform */
#ifdef H5_HAVE_INSTRUMENTED_LIBRARY
-/* Definitions for collective chunk I/O property */
-#define H5D_XFER_COLL_CHUNK_NAME "coll_chunk"
-#define H5D_XFER_COLL_CHUNK_SIZE sizeof(unsigned)
-#define H5D_XFER_COLL_CHUNK_DEF 1
+#define H5D_XFER_COLL_CHUNK_NAME "coll_chunk" /* Collective chunk I/O */
#define H5D_XFER_COLL_CHUNK_LINK_HARD_NAME "coll_chunk_link_hard"
#define H5D_XFER_COLL_CHUNK_MULTI_HARD_NAME "coll_chunk_multi_hard"
#define H5D_XFER_COLL_CHUNK_LINK_NUM_TRUE_NAME "coll_chunk_link_true"
@@ -194,6 +86,18 @@
#define H5D_XFER_COLL_CHUNK_MULTI_RATIO_IND_NAME "coll_chunk_multi_ind"
#endif /* H5_HAVE_INSTRUMENTED_LIBRARY */
+/* Default temporary buffer size */
+#define H5D_TEMP_BUF_SIZE (1024 * 1024)
+
+/* Default I/O vector size */
+#define H5D_IO_VECTOR_SIZE 1024
+
+/* Default VL allocation & free info */
+#define H5D_VLEN_ALLOC NULL
+#define H5D_VLEN_ALLOC_INFO NULL
+#define H5D_VLEN_FREE NULL
+#define H5D_VLEN_FREE_INFO NULL
+
/****************************/
/* Library Private Typedefs */
/****************************/
@@ -255,13 +159,6 @@ H5_DLL herr_t H5D_close(H5D_t *dataset);
H5_DLL H5O_loc_t *H5D_oloc(H5D_t *dataset);
H5_DLL H5G_name_t *H5D_nameof(H5D_t *dataset);
H5_DLL H5T_t *H5D_typeof(const H5D_t *dset);
-H5_DLL herr_t H5D_crt_copy(hid_t new_plist_t, hid_t old_plist_t,
- void *copy_data);
-H5_DLL herr_t H5D_crt_close(hid_t dxpl_id, void *close_data);
-H5_DLL herr_t H5D_xfer_create(hid_t dxpl_id, void *create_data);
-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(const H5F_t *f, hid_t dxpl_id, unsigned flags);
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);