Commit Graph

942 Commits

Author SHA1 Message Date
Quincey Koziol
7a30de3a2b [svn-r4680] Purpose:
Code cleanup
Description:
    Property that H5P(g|s)et_hyper_cache uses is no longer in use inside the
    library.
Solution:
    Removed H5P(g|s)et_hyper_cache API functions, except when backward
    compatibility is turned on.  When backward compatibility is turned on,
    the property is defined by the library, but unused internally.
Platforms tested:
    FreeBSD 4.4 (sleipnir)
2001-12-06 14:05:12 -05:00
Quincey Koziol
6ecbcc1717 [svn-r4676] Purpose:
Backward Compatibility Fix
Description:
    One of H5P[gs]et_buffer's parameters changed between v1.4 and the
    development branch.
Solution:
    Added v1.4 compat stuff around H5P[gs]et_buffer implementation and testing
    to allow v1.4.x users to continue to use their source code without
    modification.

    These changes are for everything except the FORTRAN wrappers - I spoke with
    Elena and she will make the FORTRAN wrapper changes.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-12-05 15:26:39 -05:00
Quincey Koziol
4886a6c447 [svn-r4670] Purpose:
Backward Compatibility Fix
Description:
    One of H5P[gs]et_sym_k's parameters changed between v1.4 and the development
    branch.
Solution:
    Added v1.4 compat stuff around H5P[gs]et_sym_k implementation and testing
    to allow v1.4.x users to continue to use their source code without
    modification.

    These changes are for everything except the FORTRAN wrappers - I spoke with
    Elena and she will make the FORTRAN wrapper changes.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-12-05 11:42:40 -05:00
Quincey Koziol
a9c747deba [svn-r4669] Purpose:
Backward Compatibility Fix
Description:
    One of H5P[gs]et_cache's parameters changed between v1.4 and the development
    branch.
Solution:
    Added v1.4 compat stuff around H5P[gs]et_cache implementation and testing
    to allow v1.4.x users to continue to use their source code without
    modification.

    These changes are for everything except the FORTRAN wrappers - I spoke with
    Elena and she will make the FORTRAN wrapper changes.
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-12-05 11:12:32 -05:00
Binh-Minh Ribler
2167e3c495 [svn-r4668]
Purpose:
    Eliminated warnings
Description:
    On IRIX and Windows 98, if a function, that returns a value, throws
    an exception in "else" statement, the compiler still complains that
    the function doesn't return a value.
Solution:
    Replaced:
	if (something valid)
	    return a value
	else
	    throw an exception

    with:
	if (something invalid)
	    throw an exception
	return a value
Platforms tested:
    Windows 98
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
    IRIX64 (modi4) - only tested that the warnings went away, still working
			on other configuration problems.
2001-12-05 11:03:14 -05:00
Binh-Minh Ribler
5077ac0c90 [svn-r4605]
Purpose:
    Bug fix

Description:
    Add the overloaded member function Attribute::getName to return
    the attribute name's length as in C API.  This functionality was
    missing.  Note that the current getName that returns "string"
    is not removed, for different way of using getName.

Platforms tested:
    SunOS 5.7 (arabica)
    Windows 98
2001-11-14 17:14:05 -05:00
Raymond Lu
ec59e5f52a [svn-r4583]
Purpose:
    Switch from old property list to new generic property list.
Description:
    Changed C++ according to the new generic property list.
Platforms tested:
    FreeBSD, SunOS 5.7.
2001-11-02 14:45:25 -05:00
Binh-Minh Ribler
1398cc0eef [svn-r4580]
Purpose:
    Bug fixing
Description:
    + added operator= to PredType
    + removed 'using namespace std' from H5RefCounter.cpp because it's not
        used and leaving it there requires #include some standard header file
    + added 'using namespace std' in H5Exception.cpp

Platforms tested:
    SunOS 5.7 (arabica)
    Windows 98
2001-10-31 11:01:35 -05:00
Raymond Lu
33189bd39b [svn-r4573]
Purpose:
    Switch mount property list to the new generic property list.
Platforms tested:
    IRIX64 6.5, SunOS 5.7, FreeBSD.
2001-10-25 14:52:10 -05:00
Raymond Lu
b6da4ea427 [svn-r4569]
Purpose:
    Generic Property List Change
Description:
    Changed file access list to the new generic list.
Platforms tested:
    IRIX64, SunOS5.7, FreeBSD
2001-10-24 13:02:27 -05:00
Quincey Koziol
0cec5adf06 [svn-r4553] Purpose:
Bug fix.
Description:
    Fix int/unsigned problem in C++ wrapper API
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-10-17 09:57:53 -05:00
Raymond Lu
05eb7b7a84 [svn-r4542]
Purpose:
    Changed to the new generic property list.
Description:
    Took out H5P_FILE_CREATE from constructor definition.
2001-10-15 14:35:20 -05:00
Raymond Lu
7666ce56d3 [svn-r4516]
Purpose:
    Changed to the new generic property list
Platforms tested:
    Arabica and Hawkwind
2001-10-03 12:55:22 -05:00
Quincey Koziol
7a96b1a0d2 [svn-r4482] Purpose:
Kludge
Description:
    Since we're only about halfway through converting the internal use of
    property lists from the "old way" to the generic property lists, we turned
    off snapshots to avoid exposing lots of API changes to users, until the
    APIs settled down.

    Getting the snapshots rolling again seems to have become a priority, so
    some changes are going to have to be made now that were going to be
    postponed until we were completely finished with the conversion.  This
    requires that the old API functions be able to deal with both the old
    and new property lists smoothly.

Solution:
    Kludge together the property list code so that they can transparently handle
    dealing with both the old and new property lists

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-09-26 15:29:35 -05:00
Binh-Minh Ribler
a59795b546 [svn-r4366] Purpose:
Code cleanup

Description:
    Changed prototype for the buffer in Attribute::write from "void *"
    to "const void *"

Platforms tested:
    FreeBSD 4.4 (hawkwind)
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
2001-08-16 08:06:37 -05:00
Quincey Koziol
95862451f7 [svn-r4324] Purpose:
New Features!
Description:
    Start migrating the internal use of property lists in the library from the
    older implementation to the new generic property lists.

    Currently, only the dataset transfer property lists are migrated to the
    new architecture, all the rest of the property list types are still using
    the older architecture.

    Also, the backward compatibility features are not implemented yet, so
    applications which use dataset transfer properties may need to make the
    following changes:
        H5Pcreate(H5P_DATASET_XFER) -> H5Pcreate_list(H5P_DATASET_XFER_NEW)
            and
        H5Pclose(<a dataset transfer property list>) -> H5Pclose_list(id)

    This still may have some bugs in it, especially with Fortran, but I should
    be wrapping up those later today.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-10 15:47:05 -05:00
Bill Wendling
73e6cacf08 [svn-r4298]
Purpose:
    Regenerated Dependencies Files
2001-08-01 17:18:50 -05:00
Quincey Koziol
990fadfbe5 [svn-r4181] Purpose:
Bug Fix, Code Cleanup, Code Optimization, etc.
Description:
    Fold in the hyperslab speedups, clean up compile warnings and change a
    few things from using 'unsigned' or 'hsize_t' to use 'size_t' instead.
Platforms tested:
    FreeBSD 4.3 (hawkwind), Solaris 2.7 (arabica), Irix64 6.5 (modi4)
2001-07-10 16:19:18 -05:00
Binh-Minh Ribler
ba6cba5d30 [svn-r3707] Purpose: Bug fixes and code clean up
Description and Solution:

	- Predefined type objects become outdated when the application calls
	H5close and then H5open to use the library again.

	Solution:
	    + Reimplemented PredType using enum type to obtain up-to-date
		values for predefined types, i.e. H5T_xxx_yyy's, when they
		are used.
	    + Added to PredType its own version of getId() to return the
		appropriate predefined type id according to the enum value.
	    + Made IdComponent::getId() a virtual function

	- Since Albert already fixed the "multiply defined RcsId" problem,
	removed the now become unnessary "#undef RCSID" from H5Include.h

	- Added a check for func_name != NULL in one of the Exception
	constructors because seg. fault. might occur in some situations.

	- It is more convenient to make a copy of a datatype, dataspace,
	or property list by using assignment operator

	Solution:
	    + Added assignment operator to DataType, DataSpace, and
		PropList so that they will invoke H5Tcopy, H5Scopy,
		and H5Pcopy, respectively, instead of just simply
		copying the data members as for other classes.  So,
		now a type, space, or property list can be copied by
		either :
			mytype = original_type, or
			mytype.copy(original_type)
		Note that copy constructors are still just copying the
		data members.
	    + Added an assignment operator to DataType that takes a
		predefined type.
	    + Made IdComponent::operator= a virtual function

Platforms tested:
	arabica (sparc-sun-solaris 2.7)
2001-03-24 23:37:22 -05:00
Binh-Minh Ribler
9cd9f7f521 [svn-r3602]
Purpose: Usability enhancement

Description:
	- Added more information about the failure to all the throw's,
	i.e, member function name and more detail about the failure, where
	appropriate.  Also, added exception throws for private functions,
	such as p_close to provide more specific details.

	- Added two api functions: Exception::getFuncName() and
	Exception::getCFuncName() to provide the name of the member
	function where failure occurs.

	- Fixed some typos, one of which caused segn. fault in some
	situations (resetIdComponent was accidentally called twice
	in a couple of places :)

Platforms:
	arabica (sparc-sun-solaris 2.7)
2001-03-09 22:59:46 -05:00
Binh-Minh Ribler
f1932cb582 [svn-r3550]
Purpose:
    Bug fix
Description:
    The Exception destructor accidently called H5Eprint, which caused
    error messages to be printed where they are not supposed to because
    the failures are expected.
Solution:
    Removed that lousy call!
Platforms tested:
    arabica (sparc-sun-solaris 2.7)
2001-03-06 02:08:33 -05:00
Binh-Minh Ribler
42e15a3d6a [svn-r3540] Purpose:
Feasibility improvement
Description:
    - Some member functions in class Exception can be called without
    an Exception instance exits, but because they are not static, they
    cannot.
    - Many exception throwings don't provide any information to callers.
Solution:
    - Add 'static' to several member functions in class Exception.
    - Added <class name::function name> to some exceptions thrown
	in H5File.cpp and H5FcreatProp.cpp.  I'm trying this for users'
	comments.  More information may be added later and to all
	exceptions.
    - Changed the comment line for emacs editor to:
	// C++ informative line for the emacs editor: -*- C++ -*-
      because... I'd rather not say that the code "may look like C" :-)
Platforms tested:
    Linux (gcc version egcs-2.91.66)
2001-03-02 13:53:15 -05:00
Bill Wendling
b545a4bb03 [svn-r3534] Purpose:
Bug Fix
Description:
    Added comments to the top of C++ files to indicate that it's a C++
    file and not a C source code file. Also added a macro which makes
    emacs automagically enter c++-mode. (Recommended by Frank Schimmel
    fschimme@monsoon.CAPS.ou.edu)
2001-03-02 12:50:58 -05:00
Binh-Minh Ribler
b1ac03cdb5 [svn-r3337]
Purpose:
    Small bug fix
Description:
    A stub function has returned type hsize_t but returns -1.
Solution:
    Changed returned value from -1 to 0
Platforms tested:
    Solaris (arabica)
2001-01-31 11:04:24 -05:00
Bill Wendling
f82c9383c6 [svn-r3293] Purpose:
Fixup
Description:
    We were specifying a config file for the C++ stuff and it didn't need
    one. This would cause problems with compiling the C++ stuff since it
    wouldn't get the correct H5config.h file.
Solution:
    Removed support for it.
Platforms tested:
    Eirene
2001-01-16 13:40:26 -05:00
Binh-Minh Ribler
d24bacb8a4 [svn-r3199]
Purpose: bug fix

Description:
	I found a couple of places where virtual destructors were missing
	and could cause small memory leaks.  Also, some destructors were
	not virtual when they should be.

Solution:
	- added virtual destructors, which also free dynamically allocated
	  memory
	- added virtual to several destructors
	- also, fixed several typos

Platforms tested:
	Solaris 2.7 (arabica)
2000-12-23 08:17:32 -05:00
Binh-Minh Ribler
1aec17231d [svn-r3122] Purpose:
Fix and improve

Description:
        - Put functions that are common to H5File and Group into a
          prototype class, CommonFG.  I didn't do that before because
          of the fear of the consequences of multiple inheritance, since
          H5File and Group already inherit from different super classes.
          I recently read a C++ book and learned to use MI more safely.
          This change reduced some more of code redundancy.
        - Added missing const to some function parameters

Platforms tested:
        Solaris/CC 5.0 (arabica)
2000-12-13 08:06:57 -05:00
Binh-Minh Ribler
9cbeb3c53f [svn-r3121] Purpose:
Fix and improve

Description:
	- Put functions that are common to H5File and Group into a
	  prototype class, CommonFG.  I didn't do that before because
	  of the fear of the consequences of multiple inheritance, since
	  H5File and Group already inherit from different super classes.
	  I recently read a C++ book and learned to use MI more safely.
	  This change reduced some more of code redundancy.
	- Added missing const to some function parameters
	- Added missing return statements for some functions.

Platforms tested:
	Solaris/CC 5.0 (arabica)
2000-12-12 21:15:31 -05:00
Binh-Minh Ribler
84fadb9f74 [svn-r3114] Purpose: Fix
Description:
	Dec CC compiler doesn't support some new c++ features.
	Some typos caused compilation erros on Dec Alpha.

Solution:
        - Added macro BOOL_NOTDEFINED to define bool type on Dec
          Alpha (gondolin) since its compiler doesn't support bool.
	- Added macro NO_STATIC_CAST to prevent the use of the new
	  c++ feature static_cast since Dec CC compiler doesn't support.
	- Added const to parameters of some functions to match the
	  functions' declaration and definition.  Typos errors and
	  Dec CC complained.

Platform:
	Solaris (arabica).  Also tried to build on Dec Alpha but still
	not linked due to some missing compiler flags; its compilation
	went fine though.
2000-12-11 23:40:09 -05:00
Bill Wendling
f271832d0d [svn-r3090] Purpose:
Fix
Description:
	Windows couldn't handle the .C extension. The filenames had to be
	changed to *.cpp instead.
Solution:
	Changed in the Makefiles to accomodate said change.
Platforms tested:
	Eyeballed.
2000-12-06 22:43:42 -05:00
Binh-Minh Ribler
b337b85b13 [svn-r3082] Purpose:
Renaming source files for portability
Description:
        Removed *.C files after adding the corresponding *.cpp files.
Platforms tested:
2000-12-06 19:50:09 -05:00
Binh-Minh Ribler
0ed058b1c0 [svn-r3081]
Purpose:
	Renaming source files for portability
Description:
	Removed *.C files after adding the corresponding *.cpp files.
Platforms tested:
2000-12-06 19:46:58 -05:00
Binh-Minh Ribler
f148ff3caf [svn-r3080]
Purpose:
	Support portability
Description:
	I forgot that source file extension .C will not work on Windows.
Solution:
	Changed all source file from *.C to *.cpp for portability.
Platforms tested:
	arabica (sparc-sun-solaris 2.7)
2000-12-06 19:04:08 -05:00
Binh-Minh Ribler
7df8cd5cfe [svn-r3079] Purpose: bug fix - by C API
Description:
	The prototype of two C API functions, H5Tget_offset and
	H5Sget_simple_extent_npoints was changed to fix bug #446,
	resulting in the need for updating the two corresponding
	C++ API functions.

Solution:
	- Changed the return type of AtomType::getOffset from size_t
	  to int, and the error return value from 0 to -1.
	- Changed the return type of DataSpace::getSimpleExtentNpoints
	  from hsize_t to hssize_t, and the error value from 0 to -1.

Platforms tested:
	arabica (sparc-sun-solaris 2.7)
2000-12-05 23:59:37 -05:00
Bill Wendling
e552b96ce3 [svn-r3074] Purpose:
Improvement
Description:
	Made the Makefiles better.
Solution:
	Added standard macros concerning where things are place. Like
	libraries and so forth.
Platforms tested:
	Linux
2000-12-04 15:25:14 -05:00
Bill Wendling
a3282af132 [svn-r2932] Purpose:
Changed to handle tracing in C++ files.
Description:
	Pointed to the correct ``trace'' program (the one in hdf5/bin/)
Platforms tested:
	Linux
2000-11-15 13:00:04 -05:00
Bill Wendling
7243a3b7c2 [svn-r2926] Purpose:
Needed Dependencies file
2000-11-15 12:43:06 -05:00
Bill Wendling
f099d83060 [svn-r2920] Purpose:
Buglet fix...
Description:
        When configuring, configure would complain about there not being
        a confdefs.h file.
Solution:
        Added a src/H5config.h file which configure can generate. This
        can be used for configure stuff later, but is empty now.
Platforms tested:
	Linux
2000-11-15 11:40:42 -05:00
Bill Wendling
927e5beba7 [svn-r2916] Purpose:
include file
Description:
	Added header file to the PUB_HDR macro so that it'll be
	installed with the library.
2000-11-15 11:17:49 -05:00
Bill Wendling
80429f7f45 [svn-r2914] Purpose:
Bug fix
Description:
	libtool complained that the library name didn't have a ``lib''
	prefix. Also, the $(top_srcdir) macro points to the top of the
	c++/ directory, which was messing up the -I$(top_srcdir)/src
	stuff. It needed to be changed to the correct value.
Solution:
	Made it so
Platforms tested:
	Linux
2000-11-15 11:06:32 -05:00
Bill Wendling
be035551d3 [svn-r2901] Purpose:
Adding Makefile
2000-11-14 18:15:12 -05:00
Binh-Minh Ribler
92041a6865 [svn-r2897] Purpose:
C++ API for 1.3.x branch

Description:
	The *.C and *.h files named different than those in 1.2.x.
	They are in the form: 'H5' + classname, or just classname if
	the classname is already prefixed with 'H5' to avoid ambiguity
	in documentation context.  This version has several hidden bugs
	fixed and an improvement on the reference counting approach.
	The classes and their inheritance structure are listed below:
	---------------------------------------
	H5Library
	Exception
	RefCounter
	IdComponent
		H5File
		DataSpace
		H5Object
			Group
			AbstractDs
				DataSet
				Attribute
			DataType
				PredType
				EnumType
				CompType
				AtomType
					StrType
					IntType
					FloatType
		PropList
			FileCreatPropList
			FileAccPropList
			DSetCreatPropList
			DSetMemXferPropList
	---------------------------------------
	IdComponent uses RefCounter to keep track of opened objects
	so proper termination of HDF5 objects can be maintained.
	Each class has a .h file containing the class declaration and
	a .C file containing its definition.  In addition to the classes
	files, the following files do not have class information:

	- H5Cpp.h: header file to be included in user's application
	- H5Idtemplates.h: contains a template function used by several classes
	- H5Classes.h: contains forward class declarations
	- H5CommonFG.*: contains common code used by classes H5File and Group
	- H5Include.h: contains the hdf5.h header file and the #undef RCSID
		to work around the problem: multiple defined RcsId
	- H5Alltypes.h: simply serves as a container to hold the header
		files of all datatypes to simplify the header file inclusion

Platforms:
	Solaris (arabica) and Linux
2000-11-14 16:30:12 -05:00