Commit Graph

423 Commits

Author SHA1 Message Date
Quincey Koziol
ef8604f348 [svn-r96] Added "atexit" routines to each interface to free buffers allocated during
runtime.  Isolated but can't figure out how to fix bug reported with purify.
1997-09-18 16:06:11 -05:00
Quincey Koziol
ac0b974630 [svn-r95] Tracked down memory bug. 1997-09-18 09:54:22 -05:00
Quincey Koziol
85af38c6a1 [svn-r91] Bug fixes for multiple datasets in the file. Interim checkin, theres still
a problem with the simple dimensionality caching.
1997-09-16 15:07:12 -05:00
Robb Matzke
c2212e4c4e [svn-r89] ./src/H5Apublic.h
Removed H5_OID.

./src/H5D.c
	Fixed a few things to work better with symbol tables. Combined
	the H5D_oid_t and H5D_dataset_t structs.

./src/H5Dprivate.c
	Combined the H5D_oid_t and H5D_dataset_t types.

./src/H5M.c
	Removed the callback list for H5_OID.
1997-09-16 13:00:02 -05:00
Quincey Koziol
fec4cf8989 [svn-r81] Finished basic data-type conversions, files are now portably written on most
"normal" architectures.
1997-09-15 14:07:03 -05:00
Quincey Koziol
4dd2b367d5 [svn-r78] Checkpointing dataset code. Everything is currently working, except writing
a second dataset out to the file seems to loose the first one.
1997-09-15 12:54:15 -05:00
Quincey Koziol
08b00d7bfe [svn-r73] Lots of added code for dataset I/O. Its now writing out datasets to the disk
correctly, but only in "native" format.  I'm adding the data-type conversions
and checking the reading later today.
1997-09-12 10:32:33 -05:00
Quincey Koziol
0a379e1cc1 [svn-r70] Added clarifying comments from code review meeting to H5Mflush and H5D_flush. 1997-09-05 14:33:15 -05:00
Quincey Koziol
39a94b2f53 [svn-r53] Added datatype and dimensionality messages to dataset header, cleaned up more
code, etc.
1997-08-29 14:26:32 -05:00
Robb Matzke
c48f8b7590 [svn-r52] ./src/H5O.c
If the symbol table entry doesn't change then the ent_modified
        argument to H5O_modify() doesn't change.  This allows us to
        set ent_modified to false and then call H5O_modify() a whole
        bunch of times and easily determine if any of the calls
        modified the symbol table entry.

./src/H5D.c
        Fixed caching of things in the symbol table entry using the
        scheme we came up with a couple months ago.
1997-08-29 14:05:50 -05:00
Robb Matzke
969654ce45 [svn-r49] ./src/H5D.c
Changed H5D_flush() to work with the new symbol table
        functions.  I just remembered that caching data in the symbol
        table entries still needs some work, so there's a line in
        there that invalidates the symbol table entry cache.

        Also, there are some comments in there with the word `Quincey'
        for you to read about inserting the messages in the dataset
        object header.
1997-08-28 14:25:10 -05:00
Quincey Koziol
a39e0ef324 [svn-r47] Finished flashing out the H5M* functions calls. Cleaned up non-compiling
source.  Finished adding in remainder of H5Osdtyp.c functions.
1997-08-28 12:14:35 -05:00
Robb Matzke
2707808297 [svn-r44] ./src/H5D.c
I commented out a bunch of code in H5D_flush() so I could
	compile and link the test cases.  If you commit your changes
	to that file, whatever they may be, I'll change H5D_flush() to
	use the new directory functions described below...

./src/H5G.c
	H5G_namei()
	-----------
	Understands files without directories. The root object
	(directory or not) can be found by asking for `/' (or any
	equivalent absolute or relative name like `/.//.///' or
	`.//.///' (if the cwd is the root)) or by name like `/foo' (or
	any other equivalent absolute or relative name) if the object
	has a name message with the value `foo'.  This function is
	used by most of the other H5G functions so they now understand
	directory-less files too.

	H5G_new()
	---------
	Creates the root directory implicitly if it doesn't already
	exist, moving any previous non-directory root object into the
	new root directory before creating the requested directory
	within the root.  The creation of the root directory happens
	first, regardless of whether the requested directory creation
	succeeds.  Once the root directory is created it never
	disappears even if the file later has only one object.  This
	"feature" can be used to force a file to have a root directory
	by saying something like:

	  H5G_new (..., "/", ...);
	  H5ECLEAR; /*we don't care about the H5E_EXISTS failure*/

	The H5G_new() in the previous example fails because the root
	directory is created implicitly before we attempt to create
	the requested "/" directory.

	H5G_find()
	----------
	Understands files without directories.  If there is no root
	object then this function is guaranteed to fail even if the
	request is for `/'.  As mentioned for H5G_namei(), the root
	object can be retrieved with `/' or `/foo' (or equivalent
	absolute or relative names).

	H5G_insert()
	------------
	Understands files without directories and attempts to create
	such files when there is only one object.  The root symbol
	table is created implicitly when necessary.

	A root object can be given a name message by the caller and
	then inserted with the name `/' or it can be inserted with
	the name `/foo' in which case H5G_insert() will set the name
	message to `foo'.

	H5G_modify()
	------------
	Understands files without directories.

./src/H5Fprivate.h
	Removed the root_type field from hdf5_file_t.

./src/H5Fprivate.h
./src/H5F.c
	Removed H5F_root_type()

./src/H5Fpublic.h
	Removed H5F_root_symtype_t.

./src/H5Oprivate.h
./src/H5O.c
	Added H5O_remove() which is currently a no-op.
1997-08-28 11:37:58 -05:00
Quincey Koziol
31ff3e40a0 [svn-r42] Minor tweaks to correct parameters for H5O_new 1997-08-26 14:51:49 -05:00
Quincey Koziol
ed257f0958 [svn-r41] Interim checkpoint of dataset code for Robb to look at. 1997-08-26 12:01:18 -05:00
Robb Matzke
bc2b9d9dea [svn-r35] ./src/H5ACproto.h
./src/H5Aproto.h
./src/H5Bproto.h
./src/H5Cproto.h
./src/H5Dproto.h
./src/H5Eproto.h
./src/H5Fproto.h
./src/H5Gproto.h
./src/H5Hproto.h
./src/H5MFproto.h
./src/H5MMproto.h
./src/H5Mproto.h
./src/H5Oproto.h
./src/H5Pproto.h
./src/H5Tproto.h
./src/H5proto.h
	These files were removed from the library and renamed by
	changing `proto' to `public'.

./src/H5ACpublic.h	NEW
./src/H5Apublic.h	NEW
./src/H5Bpublic.h	NEW
./src/H5Cpublic.h	NEW
./src/H5Dpublic.h	NEW
./src/H5Epublic.h	NEW
./src/H5Fpublic.h	NEW
./src/H5Gpublic.h	NEW
./src/H5Hpublic.h	NEW
./src/H5MFpublic.h	NEW
./src/H5MMpublic.h	NEW
./src/H5Mpublic.h	NEW
./src/H5Opublic.h	NEW
./src/H5Ppublic.h	NEW
./src/H5Tpublic.h	NEW
./src/H5public.h	NEW
	These files came from the old H5*proto.h files.

./src/Makefile
./src/Makefile.in	NEW
	Removed.  Now generated automatically from Makefile.in by
	running configure.

./src/h5oplat.h
./src/hdf5fort.h
./src/hdf5gen.h
./src/hdf5glob.h
./src/hdf5lims.h
./src/hdf5meta.h
./src/hdf5pabl.h
./src/hdf5plat.h
./src/hdf5port.h
./src/hdf5type.h
	Removed.  The contents of these files has moved to other
	header files or source files depending on it's nature.

./src/H5.c
./src/H5A.c
./src/H5B.c
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5G.c
./src/H5H.c
./src/H5M.c
./src/H5MF.c
./src/H5MM.c
./src/H5O.c
./src/H5Ocont.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Ostab.c
./src/H5P.c
./src/H5T.c
	Fixed include files.  Moved some things from old headers into
	these files.

./src/H5ACprivate.h
./src/H5Aprivate.h
./src/H5Bprivate.h
./src/H5Cprivate.h
./src/H5Dprivate.h
./src/H5Eprivate.h
./src/H5Fprivate.h
./src/H5Gprivate.h
./src/H5Hprivate.h
./src/H5MFprivate.h
./src/H5MMprivate.h
./src/H5Mprivate.h
./src/H5Oprivate.h
./src/H5Pprivate.h
./src/H5Tprivate.h
./src/H5private.h
./src/debug.c
	Fixed include files.

./src/hdf5.h
	This is now the top-level *PUBLIC* include file.  It should
	never appear in the library *.c files.
1997-08-15 11:51:34 -05:00
Quincey Koziol
fdb45fa4fa [svn-r31] Added code for H5Mget_file & H5Mflush and re-targeted some of the H5D calls
to use them.
1997-08-15 11:06:12 -05:00
Quincey Koziol
876badec3f [svn-r30] Intermediate checkin of (non-working) dataset code to allow for source code
rearrangement.
1997-08-15 09:36:27 -05:00
Robb Matzke
326981f421 [svn-r24] ./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
	H5B_new() only takes two arguments.

./src/H5C.c
	Fixed initializer for default_file_create to be the same order
	as it's definition.

./src/H5D.c
	Changed commented-out code to #if 0/#endif.  #if'd out a
	variable that was unused because of #if'd out code.

./src/H5Dproto.c
	Added a prototype for H5Dwrite().

./src/H5F.c
	Changed parentheses to fix precedence problems from:

		flags & (~H5AC_OVERWRITE) != 0
	to
		(flags & ~H5AC_OVERWRITE) != 0

./src/H5H.c
	Heap reallocation doubles the heap size instead of tripling it.

./src/H5O.c
	Got rid of a statement with no effect.

./src/hdf5port.h
	Indented a few #defines.  Added a defn for MAX3().
1997-08-11 17:49:59 -05:00
Robb Matzke
a260c7849c [svn-r17] ./src/H5AC.c
Renamed H5AC_find() to H5AC_find_f() which is invoked from the
	H5AC_find() macro.

	Changed HASH() to H5AC_HASH().

./src/H5ACprivate.h
	Increased the number of cache slots from 1033 to 10330 to see
	how it affects performance.  This should probably be
	changeable on a per-file basis.

./src/H5B.c
	Fixed some bugs now that symbol tables are actually using the
	stuff.

	Improved debugging a little.

	Fixed uninitialized memory appearing in the file.

./src/H5D.c
	Changed a FUNC_ENTER() argument from H5Dset_info to H5Dwrite.

./src/H5F.c
	Plugged a memory leak in H5F_dest().

./src/H5G.c
./src/H5Gprivate.h
	Many of these functions take a symbol table entry which
	describes the symbol table rather than just the symbol table
	address.

	Moved some functions to make room for the ones that understand
	directory names:
		  H5G_new()	-> H5G_stab_new()
		  H5G_find()	-> H5G_stab_find()
		  H5G_modify()	-> H5G_stab_modify()
		  H5G_insert()	-> H5G_stab_insert()
		  H5G_list()	-> H5G_stab_list()

./src/H5Gnode.c
	Added more assertions.

	Zero new memory so junk doesn't appear in the data file.  This
	is a problem when one tries to declassify a classified data
	file.

	H5G_node_debug() can take an extra argument which is the
	address of the heap for the symbol table.  If supplied, the
	symbol names are printed along with the heap offsets.

./src/H5H.c
./src/H5Hprivate.h
	Fixed a bug with the free blocks by forcing things to align on
	even boundaries.  It's still possible to lose heap memory if
	the hole is smaller than the free list header.  The
	alternative is to align heap objects on 12 or 20 byte
	boundaries, but this tends to waste to much space.

	Zero new memory like with H5Gnode.c.

	Fixed a "mispeling" of NDEBUG.

./src/H5Ocont.c
./src/H5Onull.c
	Added the pablo mask defn.

./src/H5Ostab.c
	Added the pablo mask defn.

	Fixed a read from uninitialized memory.

./src/H5Oprivate.h
	Tuned some parameters to see how they affect performance.

./src/debug.c
	An optional third argument can be supplied which is the
	address of a heap to use to display names in a symbol table.

./src/hdf5pabl.h
	Changed `int' to `intn'.
1997-08-09 11:45:59 -05:00
Quincey Koziol
dd0fbd5b00 [svn-r14] Preliminary checkin of dataset code, to allow the interface & code to be shared.
Everything except the H5Dwrite should be working (or have sections of code
commented about features to implement).
1997-08-06 11:00:56 -05:00
Robb Matzke
e251f45b87 [svn-r13] ./src/H5.c
Added an `_g' to the end of library_initialize,
	thread_initialize, and interface_initialize to abide by the
	naming convention.  Removed setting of these variables from
	the various initialization functions since it happens in the
	FUNC_ENTER() macro now.

	Defined PABLO_MASK.

	Removed `CONSTR(FUNC,"function_name")' everywhere since it's
	handled by the various FUNC_ENTER macros.

	Fixed calls to FUNC_ENTER(), FUNC_LEAVE(), and HRETURN_ERROR()
	so they don't need so many arguments.

	Changed PABLO_TRACE_ON() to FUNC_ENTER() since there is no
	longer any danger of infinite recursion.

	H5_term_library() now returns SUCCEED/FAIL and uses
	FUNC_ENTER/FUNC_EXIT macros.

./src/H5A.c
	Changes similar to H5.c.

	Most (all?) of the functions called PABLO_TRACE_ON() and the
	package doesn't have an interface initializer that I can see,
	so the second argument to FUNC_ENTER() is always NULL.

	H5A_release_atom_node() returns SUCCEED/FAIL.

./src/H5AC.c
	Added error handling.

	Arguments for internal functions are checked with assert().

./src/H5C.c
	Changes similar to H5.c

	Fixed the FUNC variable in H5C_get_default_atom() since it was
	initialized to the wrong name.

./src/H5D.c
	Changes similar to H5.c

./src/H5E.c
	Changes similar to H5.c

	Changed the pablo mask from H5_mask to H5E_mask in
	H5E_init_interface().

	H5Eclear(), H5E_store(), and H5Epush() return SUCCEED/FAIL.
	Changed PABLO_TRACE_OFF() calls to FUNC_LEAVE() calls in the
	same functions.

./src/H5Eprivate.h
./src/H5Eproto.h
	Added additional error symbols for the H5AC package.

	Changed prototypes for H5Eclear() and H5Epush().

	Changes to HRETURN_ERROR() and HGOTO_ERROR() to reduce the
	number of arguments.

./src/H5F.c
	Changes similr to H5.c

	Changed the pablo mask from H5_mask to H5F_mask for the
	FUNC_LEAVE() call of H5F_init_interface().

	Added FUNC_ENTER() and FUNC_LEAVE() calls to some functions
	that didn't have them.

./src/H5M.c
	Changes similar to H5.c

	Fixed the FUNC variable in H5M_init_interface() since it was
	initialized to the wrong name.

./src/H5P.c
	Changes similar to H5.c

./src/H5T.c
	Changes similar to H5.c

./src/hdf5gen.c
	Changes to FUNC_ENTER() and FUNC_EXIT() to reduce the number
	of arguments.  FUNC_ENTER() is now safe from infinite
	recursion since it updates the library_initialize_g,
	thread_initialize_g, or interface_initialize_g variables
	before calling the appropriate initialize function.
1997-08-04 21:07:08 -05:00
Quincey Koziol
ace2983e76 [svn-r9] Added framework code for creating datasets and hooked them into the
"meta-object" interface
1997-08-01 16:24:03 -05:00