Commit Graph

34 Commits

Author SHA1 Message Date
Binh-Minh Ribler
88ce565d7d [svn-r22235] Purpose: Fixed bugs HDFFV-2761 & HDFFV-7852
Description:
    - Replaced PredType::NotAtexit() with PredType::AtExit(H5CPP_EXITED);
      and used PredType::AtExit as a flag to detect when all predefined
      types have been destroyed.  Then, H5close will be called to terminate
      the library after its being re-initiated when the PredType destructors
      were activated.  This change removed the memory leaks shown by the
      user's sample program.
    - Added H5CPP_EXITED for PredType::AtExit to use as a flag
    - Updated some inaccurate comments
    - Removed stream functions from FileAccPropList
    - Replaced H5_VMS with appropriate macro in H5IdComponent.cpp
    - Corrected many URLs (hdfgroup vs. ncsa) in comments
    - Replaced std::string with H5std_string in comments
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (amani)
    SunOS 5.10 (linew)
2012-04-01 22:14:19 -05:00
Quincey Koziol
bdd7d59902 [svn-r15628] Description:
Remove trailing whitespace from C/C++ source files, with the following
script:

    foreach f (*.[ch] *.cpp)
        sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
    end

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    No need for h5committest, just whitespace changes...
2008-09-16 10:52:51 -05:00
Binh-Minh Ribler
e5df9bb33a [svn-r15309] Purpose: Fixed bugs
Description:
    The class hierarchy was revised to address the problem reported in
    bugzilla #1068.  Classes AbstractDS and Attribute are moved out of
    H5Object.  Class Attribute now multiply inherits from IdComponent and
    AbstractDs and class DataSet from H5Object and AbstractDs.

    In addition, data member IdComponent::id was moved into subclasses:
    Attribute, DataSet, DataSpace, DataType, H5File, Group, and PropList.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-07-02 09:56:42 -05:00
Quincey Koziol
b0eb42058c [svn-r14208] Description:
Make H5Pget_filter_by_id() API versioned and switch internal usage
to H5Pget_filter_by_id2().

	Add simple regression test for H5Pget_filter_by_id1().

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-18 11:10:46 -05:00
Quincey Koziol
13c484162c [svn-r14206] Description:
Make H5Pget_filter API versioned and switch internal usage to
H5Pget_filter2.

	Add regression test for H5Pget_filter1.

Tested on:
        FreeBSD/32 6.2 (duty) in debug mode
        FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Mac OS X/32 10.4.10 (amazon) in debug mode
2007-10-17 07:48:04 -05:00
Albert Cheng
ed7d456e51 [svn-r13253] Updated all C and C++ style source code files with the THG copyright notice.
Tested platform:
Kagiso only since it is only a comment block change.  If it works in one
machine, it should work in all, I hope.  Still need to check the parallel
build on copper.
2007-02-07 09:56:24 -05:00
Binh-Minh Ribler
d646c29642 [svn-r13211] Purpose: Adding wrappers
Description:
    Added wrapper DSetCreatPropList::setSzip.

Platforms tested
    AIX 5.1 (copper)
    SunOS 5.8 64-bit (sol)
    Linux 2.6 (kagiso)
2007-01-28 21:41:54 -05:00
Quincey Koziol
7be3afb278 [svn-r12440] Purpose:
Code cleanup

Description:
    Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.

Platforms tested:
    None necessary, whitespace only change
2006-06-27 09:45:06 -05:00
Binh-Minh Ribler
32d3e6f04f [svn-r12404] Purpose: Fix typos/formats
Description:
    Fixed typos and re-arranged some functions to be in sync with 1.6.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.9 (shanti)
    AIX 5.1 (copper)
2006-06-05 11:17:36 -05:00
Binh-Minh Ribler
92178e5fff [svn-r12185] Purpose: Code cleanup
Description:
    Removed an empty #ifdef block that was left by mistake.

Platforms tested:
    Linux 2.4 (heping) - very minor
2006-03-31 11:32:31 -05:00
Binh-Minh Ribler
a7e993d72b [svn-r12180] Purpose: Maintenance
Description:
    Added alias H5_std so either the global or std namespace can be
    used, depending on H5_NO_STD.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
    AIX 5.1 (copper)
2006-03-30 13:06:58 -05:00
Binh-Minh Ribler
5ed48cf279 [svn-r11755] Purpose: Code improvement
Description:
    There was a workaround for predefined types, in the C++ library,
    implemented when the C++ library was handling the reference
    counting of the object ids on its own.  Currently, the C++ library
    is using the available APIs from the C library for that purpose,
    and there were bugs reported involving that part of the C++ library.
    So, I decided to remove the workaround completely.

    Also, improved the use of std members.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
    Linux 2.4 w/PGI (colonelk)
2005-12-03 07:21:25 -05:00
Quincey Koziol
6e7ed46998 [svn-r11487] Purpose:
Code cleanup

Description:
    Tweak copyright on C++ source files to reduce whining by copyright checking
script.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/C++
2005-10-01 10:29:18 -05:00
Quincey Koziol
6b45f5172c [svn-r11245] Purpose:
Code cleanup

Description:
    Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.

Solution:
    Ran this script in each directory:

foreach f (*.[ch] *.cpp)
    sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end


Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 15:53:35 -05:00
Binh-Minh Ribler
b14a4fd95f [svn-r11060] Purpose: Fix bug (reported by user)
Description:
    The use of FileCreatPropList::DEFAULT sometimes caused failure
    in the reference counting area.  This occurs to all the default
    property lists, which also include FileAccPropList::DEFAULT,
    DSetCreatPropList::DEFAULT, and DSetMemXferPropList::DEFAULT.
    H5P_DEFAULT was used to create these default prop lists and
    because its value is 0, the id of these prop lists are 0, which
    is rejected by the H5I functions during the reference counting.

Solution:
    The main action to fix the above problem was to use
        H5P_FILE_CREATE
        H5P_FILE_ACCESS
        H5P_DATASET_CREATE
        H5P_DATASET_XFER
    to define the default property lists accordingly.  Yet, when this
    fix was applied, some bug in reference counting was revealed.
    It appeared that some ids were not incremented but were passed in
    for decrementing.  The following actions were then taken to fix and
    improve the current use of reference counting H5I functions.

        * added private func IdComponent::p_valid_id to verify that the
          id is a valid id and can be passed into an H5I function
        * used p_valid_id to validate an id before calling an H5I functions
          in the reference-counting member functions incRefCount,
          decRefCount, and getCounter
        * changed to use member function incRefCount, decRefCount, and
          getCounter instead of the C APIs H5Iinc_ref, H5Idec_ref, and
          H5Iget_ref throughout IdComponent.

    In addition, overloadings were added for incRefCount, decRefCount,
    and getCounter to take an id different than the id of the current
    instance; they can be convenient during debugging.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
    AIX 5.1 (copper)
2005-07-10 06:26:56 -05:00
Binh-Minh Ribler
3c48d3637b [svn-r10825] Purpose: Fix RM bug
Description:
    Doxygen 1.4.2 has a bug that when an \exception immediately
    follows a \brief, the exception will be displayed prominently
    in the brief section.

Solution:
    Temporarily added /// to after \brief to work around this
    problem and notified the Doxygen's author.

Platforms tested:
    Linux 2.4 (heping) - only in documentation sections
2005-05-29 17:26:56 -05:00
Quincey Koziol
427ff7da28 [svn-r9727] Purpose:
Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-)

Description:
    Generally speaking, this is the "signed->unsigned" change to selections.
However, in the process of merging code back, things got stickier and stickier
until I ended up doing a big "sync the two branches up" operation.  So... I
brought back all the "infrastructure" fixes from the development branch to the
release branch (which I think were actually making some improvement in
performance) as well as fixed several bugs which had been fixed in one branch,
but not the other.

    I've also tagged the repository before making this checkin with the label
"before_signed_unsigned_changes".

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel & fphdf5
    FreeBSD 4.10 (sleipnir) w/threadsafe
    FreeBSD 4.10 (sleipnir) w/backward compatibility
    Solaris 2.7 (arabica) w/"purify options"
    Solaris 2.8 (sol) w/FORTRAN & C++
    AIX 5.x (copper) w/parallel & FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN
    Linux 2.4 (heping) w/FORTRAN & C++


Misc. update:
2004-12-29 09:26:20 -05:00
Binh-Minh Ribler
824ba5e2fd [svn-r9129] Purpose: Updating documentation
Description:
    Updated various function headers for the RM as reviewing progresses.
    Rearranged functions in header files for more sensible look of the RM.

Platforms tested:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
2004-08-19 23:35:18 -05:00
Binh-Minh Ribler
47dd278b15 [svn-r9046] Purpose:
Code cleanup

Description:
    DataType::commit had incorrect parameter, H5Object.  Changed
    it to CommonFG, for H5File and Group.
    The change caused additional header files needed for several
    other cpp files.

    Moved some functions from Group into the base class CommonFG for
        H5File too.

Platforms tested:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)

Misc. update:
2004-08-07 00:46:10 -05:00
Binh-Minh Ribler
c3bfac0639 [svn-r8837] Purpose: Update doc and fix minor bug
Description:
    H5IdComponent.cpp: initialized a pointer to NULL
    H5Object.cpp: removed functions being added by mistake
    Update function headers for the rest.

Platforms tested:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
2004-07-08 14:48:45 -05:00
James Laird
eab58732d8 [svn-r8781]
Purpose:
HDF5 now supports SZIP with no encoder.

Description:
SZIP can be configured to have both encoder and decoder or just to have the decoder.  HDF5 can now query the configuration of any filter, and will throw errors if users try to write using a filter with encoding disabled.

Solution:
Added H5Zget_filter_info function, changed API for H5Pget_filter and H5P_get_filter_by_id.  See SZIP RFC.

Platforms tested:
Copper (fortran, C++, parallel), Sleipnir (C++), Arabica (fortran, C++), Verbena (fortran, C++)

Misc. update:
2004-07-01 12:38:04 -05:00
Quincey Koziol
2ca10d0ace [svn-r8602] Purpose:
Code update

Description:
    Update C++ wrappers to use new ID reference counting mechanisms.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/C++
    Too focused to require h5committest
2004-06-01 09:47:19 -05:00
Binh-Minh Ribler
dee9ad2b7e [svn-r8595] Purpose:
Add/Improve documentation

Description
    Added doxygen documentation to H5PredType.cpp and made minor changes
    to the others for either correction or clarification.

Platforms:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)

Misc. update:
2004-05-28 01:25:56 -05:00
Binh-Minh Ribler
db8f63f552 [svn-r8465] Purpose:
Add more C++ wrappers - incrementally check-in

Description:
    Added wrapper for many C property list functions and added Doxygen
    documentation to existing C++ functions in these files.  This is
    an incremental check-in to preserve the code, corresponding tests
    will follow in a few weeks.

    For H5PropList.h and H5PropList.cpp, added C++ wrappers for:
	H5Pexist
	H5Pclose_class
	H5Pget
	H5Pget_size
	H5Pget_class_name
	H5Pget_nprops
	H5Pset
	H5Pisa_class
	H5Premove
	H5Pequal
	H5Pget_class_parent

   For H5FaccProp.h and H5FaccProp.cpp, added C++ wrappers for:
	H5Ps[g]et_driver
	H5Ps[g]et_family_offset
	H5Ps[g]et_fapl_core
	H5Ps[g]et_fapl_family
	H5Ps[g]et_fapl_stream
	H5Ps[g]et_sieve_buf_size
	H5Ps[g]et_meta_block_size
	H5Ps[g]et_alignment
	H5Ps[g]et_multi_type
	H5Ps[g]et_fclose_degree
	H5Pset_fapl_stdio
	H5Pset_fapl_split
	H5Pset_fapl_log
	H5Pset_fapl_sec2

   For H5FcreatProp.h and H5FcreatProp.cpp, added C++ wrappers for:
	H5Pfill_value_defined
	H5Premove_filter
	H5Pget_filter_by_id
	H5Pmodify_filter
	H5Pall_filters_avail
	H5Pset_shuffle
	H5Ps[g]et_alloc_time
	H5Ps[g]et_fill_time
	H5Pset_fletcher32

   For H5DxferProp.h and H5DxferProp.cpp, added C++ wrappers for:
	H5Ps[g]et_dxpl_multi
	H5Ps[g]et_small_data_block_size
	H5Ps[g]et_hyper_vector_size
	H5Ps[g]et_edc_check

Platforms:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
    SunOS 5.8-64 (sol)
2004-05-02 17:05:25 -05:00
Pedro Vicente Nunes
78fb916259 [svn-r8149]
Purpose:
replaced name of delete filter with remove filter for the new function H5Premove_filter

Description:

Solution:

Platforms tested:
linux

Misc. update:
2004-02-04 14:36:12 -05:00
Quincey Koziol
61a451f89e [svn-r8117] Purpose:
Code cleanup

Description:
    Add C++ and FORTRAN wrappers for new H5Pdelete_filter routine, along with
documentation and a note in the release notes.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    Linux 2.4 (verbena) w/ C++ and FORTRAN
    Too minor for full h5committest
2004-01-27 15:39:20 -05:00
Binh-Minh Ribler
35fe60a237 [svn-r7740] 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.8 (sol)
    Linux 2.4 (eirene)
2003-10-26 13:52:08 -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
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
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
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
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
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
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