diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-11-05 20:28:34 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-11-05 20:28:34 (GMT) |
commit | 46f683cf14957d39550e826e374e1f3f5a64958c (patch) | |
tree | bbba7b3c43ed2b4af88b78dd8d06636919d5effc /src/H5Gprivate.h | |
parent | b7d05e45c85d44810ca1f63485329002feb14640 (diff) | |
download | hdf5-46f683cf14957d39550e826e374e1f3f5a64958c.zip hdf5-46f683cf14957d39550e826e374e1f3f5a64958c.tar.gz hdf5-46f683cf14957d39550e826e374e1f3f5a64958c.tar.bz2 |
[svn-r876] Changes since 19981102
----------------------
./bin/snapshot
Made same fix as for the release script yesterday.
./src/H5D.c
./src/H5Dprivate.h
./src/H5G.c
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5O.c
./src/H5Oprivate.h
./src/H5RA.c
./src/H5RAprivate.h
./src/H5T.c
./src/H5Tprivate.h
Improved object type checking. Instead of determining the
object type by trying to open each of the possible types, we
keep a table of associations between object type number (like
H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa'
function that returns true if the object header has the right
messages to make the object a particular type. This mechanism
also allows specialization of object types by permitting an
object to satisfy more than one `isa' function.
Added `isa' functions for groups, datasets, ragged arrays, and
committed data types.
./src/H5config.h.in
Added HAVE_STAT_ST_BLOCKS. I thought this had already been
added, but apparently not.
./tools/h5ls.c
Removed system include files since they're already included by
H5private.h and since I wasn't including them portably anyway.
By default, 1-byte integer types are printed as integer values
instead of ASCII characters. However, the `-s' or `--string'
command-line switch causes the data to be interpretted as
ASCII. String data types are always printed as character
data.
Ragged arrays are now identified as ragged arrays and h5ls
doesn't descend into the group automatically. This uses the
new object type specialization stuff.
./tools/h5tools.c
./tools/h5tools.h
Added the ability to print 1-byte integer types as either
ASCII or numeric data instead of always ASCII. The default is
to print as numeric data.
Diffstat (limited to 'src/H5Gprivate.h')
-rw-r--r-- | src/H5Gprivate.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/H5Gprivate.h b/src/H5Gprivate.h index 1cf448f..ac430c1 100644 --- a/src/H5Gprivate.h +++ b/src/H5Gprivate.h @@ -96,9 +96,22 @@ typedef struct H5G_entry_t { typedef struct H5G_t H5G_t; /* + * This table contains a list of object types, descriptions, and the + * functions that determine if some object is a particular type. The table + * is allocated dynamically. + */ +typedef struct H5G_typeinfo_t { + intn type; /*one of the public H5G_* types */ + htri_t (*isa)(H5G_entry_t*); /*function to determine type */ + char *desc; /*description of object type */ +} H5G_typeinfo_t; + +/* * Library prototypes... These are the ones that other packages routinely * call. */ +herr_t H5G_register_type(intn type, htri_t(*isa)(H5G_entry_t*), + const char *desc); H5G_entry_t *H5G_loc (hid_t loc_id); herr_t H5G_mkroot (H5F_t *f, H5G_entry_t *root_entry); H5G_entry_t *H5G_entof (H5G_t *grp); @@ -108,8 +121,10 @@ H5G_t *H5G_open (H5G_entry_t *loc, const char *name); H5G_t *H5G_reopen (H5G_t *grp); herr_t H5G_close (H5G_t *grp); H5G_t *H5G_rootof(H5F_t *f); +htri_t H5G_isa(H5G_entry_t *ent); herr_t H5G_link (H5G_entry_t *loc, H5G_link_t type, const char *cur_name, const char *new_name, uintn namei_flags); +intn H5G_get_type(H5G_entry_t *ent); herr_t H5G_get_objinfo (H5G_entry_t *loc, const char *name, hbool_t follow_link, H5G_stat_t *statbuf/*out*/); herr_t H5G_linkval (H5G_entry_t *loc, const char *name, size_t size, |