summaryrefslogtreecommitdiffstats
path: root/src/H5D.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-08-31 13:46:47 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-08-31 13:46:47 (GMT)
commit1e38c1378582208f6f109042c37c8fff858f985d (patch)
treecbed547d5490029b2f49f31a61187d33edaa8933 /src/H5D.c
parente4053f38c2b2732ffa48b7401581db2516b47951 (diff)
downloadhdf5-1e38c1378582208f6f109042c37c8fff858f985d.zip
hdf5-1e38c1378582208f6f109042c37c8fff858f985d.tar.gz
hdf5-1e38c1378582208f6f109042c37c8fff858f985d.tar.bz2
[svn-r633] Changes since 19980828
---------------------- ./RELEASE Updated with important changes I made since the second beta. ./src/H5A.c ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5R.c ./src/H5Rprivate.h ./src/H5T.c ./src/H5Tprivate.h Any API function that used to take an `hid_t loc_id' followed by a `const char *name' can now take any type of object for the loc_id as long as the object is somehow associated with a file. Internally, H5G_loc() was modified to return an H5G_entry_t* instead of an H5G_t* so it's more general. Among other things, this allows one to retrieve information about an object like a named type or dataset without knowing the name of the type or dataset: int get_nlinks (hid_t obj) { H5G_stat_t sb; if (H5Gstat(obj, ".", TRUE, &sb)<0) return -1; return sb.nlink; } ./test/gheap.c ./test/istore.c These files needed a couple of changes because they call some of the internal functions whose H5G_t arguments changed to H5G_entry_t. ./src/H5A.c Got rid of all the switch statements for getting symbol table entries for varous objects and replaced them with a call to H5G_loc() allowing attributes to automatically apply to any type of object that belongs to a file. ./test/Makefile.in Moved the ragged array tests from the normal list of tests to the `make timings' target. ./test/ragged.c Added rewrite tests -- rewrite the rows of a dataset changing the number of rows and the length of each row. ./test/mtime.c Added a test that checks that H5Gstat() can be called with a dataset as the first argument. ./src/H5S.c Added #ifdef HAVE_PARALLEL around code to check for the HDF5_MPI_OPT_TYPES environment variable because the global variable that gets set is #ifdef'd. ./bin/release bzip2 uses .bz2 as the file extension.
Diffstat (limited to 'src/H5D.c')
-rw-r--r--src/H5D.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/H5D.c b/src/H5D.c
index c5550d7..4baf7df 100644
--- a/src/H5D.c
+++ b/src/H5D.c
@@ -181,7 +181,7 @@ hid_t
H5Dcreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id,
hid_t plist_id)
{
- H5G_t *loc = NULL;
+ H5G_entry_t *loc = NULL;
H5T_t *type = NULL;
H5S_t *space = NULL;
H5D_t *new_dset = NULL;
@@ -253,7 +253,7 @@ H5Dcreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id,
hid_t
H5Dopen(hid_t loc_id, const char *name)
{
- H5G_t *loc = NULL; /*location holding the dataset */
+ H5G_entry_t *loc = NULL; /*location holding the dataset */
H5D_t *dataset = NULL; /*the dataset */
hid_t ret_value = FAIL;
@@ -813,15 +813,15 @@ H5Dextend(hid_t dset_id, const hsize_t *size)
*-------------------------------------------------------------------------
*/
H5D_t *
-H5D_create(H5G_t *loc, const char *name, const H5T_t *type, const H5S_t *space,
- const H5D_create_t *create_parms)
+H5D_create(H5G_entry_t *loc, const char *name, const H5T_t *type,
+ const H5S_t *space, const H5D_create_t *create_parms)
{
H5D_t *new_dset = NULL;
H5D_t *ret_value = NULL;
intn i, ndims;
hsize_t max_dim[H5O_LAYOUT_NDIMS];
H5O_efl_t *efl = NULL;
- H5F_t *f = H5G_fileof (loc);
+ H5F_t *f = loc->file;
FUNC_ENTER(H5D_create, NULL);
@@ -1052,15 +1052,12 @@ H5D_create(H5G_t *loc, const char *name, const H5T_t *type, const H5S_t *space,
*-------------------------------------------------------------------------
*/
H5D_t *
-H5D_open(H5G_t *loc, const char *name)
+H5D_open(H5G_entry_t *loc, const char *name)
{
H5D_t *dataset = NULL; /*the dataset which was found */
H5D_t *ret_value = NULL; /*return value */
intn i;
H5S_t *space = NULL;
-#ifdef HAVE_PARALLEL
- H5F_t *f = NULL;
-#endif
FUNC_ENTER(H5D_open, NULL);
@@ -1102,9 +1099,8 @@ H5D_open(H5G_t *loc, const char *name)
}
#ifdef HAVE_PARALLEL
- f = H5G_fileof (loc);
/* If MPIO is used, no filter support yet. */
- if (f->shared->access_parms->driver == H5F_LOW_MPIO &&
+ if (dataset->ent.file->shared->access_parms->driver == H5F_LOW_MPIO &&
dataset->create_parms->pline.nfilters>0){
HGOTO_ERROR (H5E_DATASET, H5E_UNSUPPORTED, NULL,
"Parallel IO does not support filters yet");
@@ -1160,7 +1156,7 @@ H5D_open(H5G_t *loc, const char *name)
*/
if (dataset->ent.file->shared->access_parms->driver==H5F_LOW_MPIO &&
dataset->layout.type == H5D_CHUNKED &&
- (f->intent & H5F_ACC_RDWR)){
+ (dataset->ent.file->intent & H5F_ACC_RDWR)){
if (H5D_allocate(dataset)==FAIL){
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, NULL,
"fail in file space allocation dataset");