Commit Graph

68 Commits

Author SHA1 Message Date
Binh-Minh Ribler
9439854caf [svn-r8267] Purpose:
Cleaning up warnings

Description:
    Many exception constructors have warnings about reference to temporary
    location because of the parameter initialization, for example,
    "const string& var = 0."

Solution:
    Changed "string&" parameters to pass by value for these constructors.
    Consequently, passing string by value also takes care of char pointers
    so the overloaded constructors for char pointers are then removed.
    Also, instead of setting Exception::detailMessage to null string, I
    set it to DEFAULT_MSG ("No detailed information provided") by default.

Platforms:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
    IA-64 (titan)
2004-03-20 16:18:55 -05:00
Albert Cheng
45646fcb89 [svn-r8042] Purpose:
Feature

Description:
Added option -showconfig which Shows the HDF5 library configuration summary

Platforms tested:
No h5committest test which does not test these tools.
Tested in eirene by hand.

Misc. update:
2004-01-08 15:07:23 -05:00
Binh-Minh Ribler
88595aecaa [svn-r7722] Purpose:
Minor bug fix

Description:
    Added missing "const" to the first parameter in two functions:
    DSetCreatPropList::set/getFillValue

Platforms:
    Only effected C++ API
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
2003-10-23 23:11:10 -05:00
Albert Cheng
355d0d6eb7 [svn-r6993] Purpose:
Cleanup

Description:
Remove h5c++ when distclean is called.

Solution:

Platforms tested:
Tested only in copper since the change is trivial.

Misc. update:
2003-06-08 18:11:45 -05:00
Binh-Minh Ribler
5d1b56cb81 [svn-r6990] Purpose:
Bug fix and minor code enhancement

Description:
    Missing methods to read/write C++ String for an attribute and
    a dataset.

Solution:
    Added overloaded functions read and write to H5::Attribute and
    H5::DataSet.

    Also, added another constructor StrType so the need to separately
    set the length of the string type can be eliminated.  It's minor
    but convenient.

    Made some minor changes to make error messages more readable.

Platforms:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
    IRIX 6.5.11 (modi4)
    HPUX 11.00 (kelgia)
2003-06-06 23:02:11 -05:00
Bill Wendling
0ce626c1cf [svn-r6985] Purpose:
Update

Description:
    Changed help message to say "C++" instead of "C" compiler.

Platforms tested:
    Eyeballed.

Misc. update:
2003-06-05 17:27:37 -05:00
Bill Wendling
ed99e59d68 [svn-r6982] Purpose:
Utility Addition

Description:
    Added h5c++ script file to compile HDF5 C++ applications.

Platforms tested:
    Verbena (Fortran & C++)
    Arabica (Fortran & C++)
    Modi4 (Fortran & Parallel)

Misc. update:
2003-06-05 17:17:03 -05:00
Quincey Koziol
bb042d83c7 [svn-r6950] Purpose:
API tweak.

Description:
    The H5Sget_select_bounds() API call was using hsize_t arrays for retrieving
the 'start' and 'end' coordinates, which is counter to the rest of the dataspace
API.

Solution:
    Change the arrays to be hssize_t instead.

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    FreeBSD 4.8 (sleipnir) w/parallel
    h5committested

Misc. update:
    Updated all docs for this change.

    Added 1.4 compatibility #ifdef's
2003-06-04 10:22:23 -05:00
Binh-Minh Ribler
5cc6567850 [svn-r6509] Purpose:
Adding new platform support

Description:
    Added support for the C++ API on hpux11.00 with the compiler aCC.
    Because aCC doesn't use "std," a new macro H5_NO_STD is provided
    and used where "std" is presented in the library.

    In addition, changed several cout's when reporting errors to cerr's.


Platforms tested:
    HPUX 11.00 (kelgia)
    Linux 2.2x (eirene)
    IRIX 6.5.11 (modi4)
    SunOS 5.7 (arabica) - by Elena


Misc. update:
2003-03-19 21:10:46 -05:00
Bill Wendling
a6b59791ab [svn-r6485] Purpose:
Bug Fix
Description:
    "using namespace std" isn't supported on HP-UX. We ahve the H5_NO_STD
    flag begin set, but it wasn't being used.
Solution:
    Added the check to the #ifdef line to see if H5_NO_STD is defined
    before trying to use it in the program.
Platforms tested:
    Kelgia
2003-03-17 12:20:07 -05:00
Binh-Minh Ribler
fffa25d34c [svn-r6303] Purpose:
new functions
Description:
    Added these member functions to class Group per the new C functions
    H5Gget_num_objs, H5Gget_objname_by_idx and H5Gget_objtype_by_idx:

        // Returns the number of objects in the group.
        hsize_t getNumObjs() const;

        // Retrieves the name of an object in a given group by giving index
        ssize_t getObjnameByIdx(hsize_t idx, string& name, size_t size) const;

        // Returns the type of an object in a given group by giving index;
        // the overloaded function also provided the object type in text as
        // "group" for H5G_GROUP
        // "dataset" for H5G_DATASET
        // "datatype" for H5G_TYPE
        int getObjTypeByIdx(hsize_t idx) const;
        int getObjTypeByIdx(hsize_t idx, string& type_name) const;
Platforms:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
    IRIX 6.5.11 (modi4)
2003-01-20 20:31:43 -05:00
Binh-Minh Ribler
7fd449cb79 [svn-r6236] Purpose: Copyright
Description:
    Added copyright notice to C++ API files, including *.h, *.cpp, and
    Makefile.in

Platforms:
    Linux 6.2 (eirene)
2003-01-06 23:22:12 -05:00
MuQun Yang
fcc1eea172 [svn-r5932]
Purpose:
use H5_DLLCPP to replacer __DLLCPP__ for c++ interfaces.
Description:
Solution:
Platforms tested:
linux 2.2.18smp, IRIX64, solaris 2.7, windows 2000
2002-09-20 15:37:56 -05:00
Quincey Koziol
685821526f [svn-r5487] Purpose:
Bug fix

Description:
    H5Ewalk_cb was being called from a C++ API, when it really is an
    internal routine to the H5E interface.

Solution:
    Removed C++ API wrapper for it.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-05-30 07:42:55 -05:00
Binh-Minh Ribler
567c042761 [svn-r5428]
Purpose:
    New Feature - per library change

Description:
    Added the new member function getMemberIndex to classes EnumType and
    CompType to match the new C API H5Tget_member_index.  Given the name
    of a member of an enumeration or compound datatype, this new function
    queries the index of the member.

Platforms:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
2002-05-16 17:41:00 -05:00
Binh-Minh Ribler
97a2a55cf4 [svn-r5427] Purpose:
New Feature - per library change

Description:
    Added new member function DataSet::fillMemBuf for the new
    C API H5Dfill.  Quincey's description of H5Dfill is as followed:

    Added new H5Dfill() routine to fill the elements in a selection for a
    memory buffer with a fill value.  This is a user API wrapper around some
    internal routines which were needed for the fill-value modifications
    from Raymond as well as Pedro's code for reducing the size of a chunked
    dataset.

Platforms:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
2002-05-16 09:03:53 -05:00
Binh-Minh Ribler
bb07809e41 [svn-r5270] Purpose: bug fix
Description:
    The default constructor of H5File was missing.  It's now added.

Platforms:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
    IRIX 6.5.11 (modi4)
2002-04-26 07:09:17 -05:00
Binh-Minh Ribler
e95f07dc6b [svn-r5032]
Purpose:
    Code cleanup
Description:
    DataType::convert: changed the 'nelmts' parameter from size_t to
	hsize_t according to hdf5 library change.
Platforms tested:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
2002-03-03 11:48:09 -05:00
Binh-Minh Ribler
22c5ce3c5f [svn-r5031]
Purpose:
    Minor bug fix
Description:
    Added #ifdef for windows about a #pragma
Platforms tested:
    IRIX64 (modi4)
2002-03-02 16:01:17 -05:00
Binh-Minh Ribler
0bb7111f43 [svn-r5030]
Purpose:
    Small bug fixing
Description:
    Replaced NULL by 0 for initializing or passing null "string".
    The problem showed up on platinum.
Platforms tested:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
    IA-32 Linux Cluster (platinum)
2002-03-01 16:10:29 -05:00
Binh-Minh Ribler
3f4184c6d3 [svn-r5029]
Purpose:
    Adding new member function
Description:
    Added PropList::copyProp according to the new api H5Pcopy_prop
    in the C library.  I'm still working on adding more tests so
    test for this will be added as well.
Platforms tested:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
    FreeBSD 4.4 (sleipnir)
2002-03-01 14:01:23 -05:00
Binh-Minh Ribler
bf543b4edb [svn-r5005] Purpose:
DLL accommodation

Description:
    In the inline constructor below:
        DSetCreatPropList() : PropList( H5P_DATASET_CREATE) {}
    H5P_DATASET_CREATE causes the famous "unresolved symbol" error
    when building the Release version of dsets_cpp with DLL.
    H5P_DATASET_CREATE uses H5P_CLS_DATASET_CREATE_g, which is
    imported from hdf5dll.  The inline constructor used in dsets.cpp
    causes the use of H5P_CLS_DATASET_CREATE_g, which is then
    considered undefined because dsets_cppdll is not using hdf5dll.
    This only occurs in the Release version because the Debug build
    disables inline.

Solution:
    Made the affected constructor not inlined, i.e., its implementation
    went in the cpp file.
    Note that this problem does not occur in 1.4 branch because
    H5P_DATASET_CREATE was defined differently, i.e., did not involve
    external storage.

Platforms tested:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
    Windows 2000
2002-02-24 23:34:54 -05:00
Binh-Minh Ribler
855aa23823 [svn-r4977]
Purpose:
    Adding support for dll
Description:
    Added __DLLCPP__ to all public classes and templates.
    Added #include "H5Include.h" to H5RefCounter.cpp because of the
          use of DLLCPP in .h file and it needs the following chain:
                H5Include.h/hdf5.h/H5public.h/H5api_adpt.h
    Added #pragma warning(disable: 4251) to H5Exception.h to eliminate
        this warning on private data members of type 'string.'  This
        occurs because 'string' is not yet instantiated at compilation
        time; however, since the class is exported, the warning is
        harmless.
    Changed this member function's parameter to be passed as reference.
        from:
            void CompType::insertMember( const string name,...
        to:
            void CompType::insertMember( const string& name,...
Platforms tested:
    Linux 6.2 (eirene)
    Windows 2000
2002-02-15 19:49:46 -05:00
Binh-Minh Ribler
d7684581aa [svn-r4805]
Purpose:
    Bug fix
Description:
    In several if statements, '>' was used in place of '<='.  This
    caused exceptions thrown inappropriately.  Replaced '>' by '<='
    where applicable.
Platforms tested:
    SunOS 5.7 (arabica)
    Windows 98
2002-01-09 12:14:05 -05:00
Binh-Minh Ribler
7b5b696bc4 [svn-r4713]
Purpose:
    Removing warnings
Description:
    H5IdComponent::operator= shouldn't be virtual because the subclass'
    operator= have different type for the rhs argument.  Removed virtual.
Platforms tested:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
2001-12-12 22:54:15 -05:00
Binh-Minh Ribler
fd48265a02 [svn-r4707]
Purpose:
    Bug fixing
Description:
    H5IdComponent::operator= shouldn't be virtual because the subclass'
    operator= have different type for the rhs argument.  Removed virtual
Platforms tested:
    SunOS 5.7 (arabica)
    IRIX64 (modi4) - only tested that the warnings went away, still working
                        on other configuration problems.
2001-12-12 14:29:14 -05:00
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