Commit Graph

89 Commits

Author SHA1 Message Date
Larry Knox
2ea165efd0 Update license url part2 (#333)
* Modify temporary rpath for testing in java example scripts.

* Update URL in source file Copyright headers for web copy of COPYING
    file - files not in src or test.
2021-02-17 08:52:36 -06:00
Allen Byrne
b2d661b508 Clang-format of source files 2020-09-30 09:27:10 -05:00
Binh-Minh Ribler
09913e2f8e Added class DSetAccPropList
Description:
    - Added class DSetAccPropList for the dataset access property list.
    - Added wrapper for H5Dget_access_plist to class DataSet
        // Gets the access property list of this dataset.
        DSetAccPropList getAccessPlist() const;

    - Added wrappers for H5Pset_chunk_cache and H5Pget_chunk_cache to class
      DSetAccPropList
        // Sets the raw data chunk cache parameters.
        void setChunkCache(size_t rdcc_nslots, size_t rdcc_nbytes, double rdcc_w0)

        // Retrieves the raw data chunk cache parameters.
        void getChunkCache(size_t &rdcc_nslots, size_t &rdcc_nbytes, double &rdcc_w0)

    - Added two more arguments to H5Location::createDataSet:
        const DSetAccPropList& dapl = DSetAccPropList::DEFAULT
        const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT

    - Added one more argument to H5Location::openDataSet:
        const DSetAccPropList& dapl = DSetAccPropList::DEFAULT

Platforms tested:
    Linux/64 (jelly)
    Linux/32 (jam)
    Darwin (osx1010test)
2018-07-22 15:22:34 -05:00
Binh-Minh Ribler
2d4d39d157 Fixed documentation
Description:
    - Updated the description of copy constructor for clarification.
    - Removed unnecessary comments.
Platforms tested:
    Linux/64 (jelly)
2018-03-12 19:39:20 -05:00
Binh-Minh Ribler
3494282d42 HDFFV-10149 continued
Description:
    - Moved the new wrappers committed on Mar 9:
        43158f3bb3
      to H5Location and renamed some of them for overloading.
      This is because the loc_id in the C APIs can be file, group, dataset,
      named datatype, and attribute.  Previous implementation was wrong
      following some inaccurate C API reference manual.

    - Only the following wrappers are modified or added:
      + H5Lcreate_soft: changed name from newLink to link
        // Creates a soft link from link_name to target_name.
        void link(const char *target_name, const char *link_name,...)
        void link(const H5std_string& target_name,...)

      + H5Lcreate_hard: changed name from newLink to link
        // Creates a hard link from new_name to curr_name.
        void link(const char *curr_name, const Group& new_loc,...)
        void link(const H5std_string& curr_name, const Group& new_loc,...)

        // Creates a hard link from new_name to curr_name in same location.
        void link(const char *curr_name, const hid_t same_loc,...)
        void link(const H5std_string& curr_name, const hid_t same_loc,...)

      + H5Ldelete: modified existing functions to add 2nd argument
        // Removes the specified link from this location.
        void unlink(const char *link_name,
            const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)
        void unlink(const H5std_string& link_name,
            const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)

    - copyLink and moveLink were only moved from Group to H5Location, no change

    - Added class LinkCreatPropList

    - Added overloaded functions H5Location::createGroup to take a link creation
      property list
        Group createGroup(const char* name, const LinkCreatPropList& lcpl)
        Group createGroup(const H5std_string& name, const LinkCreatPropList& lcpl)
    - Added wrapper for H5Lget_info() to H5Location
        H5L_info_t getLinkInfo(const H5std_string& link_name,...)

Platforms tested:
    Linux/64 (jelly)
    Linux/ppc64 (ostrich)
    Darwin (osx1010test)
2018-03-11 23:36:48 -05:00
Larry Knox
89fbe00dec Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to hdf5_1_10
* commit '54957d37f5aa73912763dbb6e308555e863c43f4':
  Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes.
  Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh.
  Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1
  Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
2017-04-25 16:05:36 -05:00
Binh-Minh Ribler
34731511da Purpose: Add new C++ wrappers
Description:
    Because H5Pset_file_space and H5Pget_file_space are deprecated, changed
    to make wrappers for the new functions instead:
        H5Ps/get_file_space_strategy
        H5Ps/get_file_space_page_size

    New wrappers in FileCreatPropList:

        // Sets the strategy and the threshold value that the library will
        // will employ in managing file space.
        void setFileSpaceStrategy(H5F_fspace_strategy_t strategy, hbool_t persist, hsize_t threshold) const;

        // Returns the strategy that the library uses in managing file space.
        void getFileSpaceStrategy(H5F_fspace_strategy_t& strategy, hbool_t& persist, hsize_t& threshold) const;

        // Sets the file space page size for paged aggregation.
        void setFileSpacePagesize(hsize_t fsp_psize) const;

        // Returns the threshold value that the library uses in tracking free
        // space sections.
        hsize_t getFileSpacePagesize() const;

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2017-03-18 23:40:37 -05:00
Binh-Minh Ribler
50ac3cd6ec Description:
Miscellaneous clean-up: format and comments
Platforms tested:
    Linux/64 (jelly)
    Darwin (osx1010test)
2017-03-17 11:03:18 -05:00
Quincey Koziol
0313cbb91d Final merge of page buffering branch to develop 2017-03-13 21:30:37 -07:00
Binh-Minh Ribler
861a849530 Description:
Only format changes: mostly tabs vs. spaces
Platforms tested:
    Linux/64 (jelly) - very minor
2017-03-03 08:45:57 -06:00
Binh-Minh Ribler
cd3bd5576f Purpose: Add new wrappers
Description:
    Added wrappers H5Location::exists() for H5Lexists.
    Added wrapper H5Object::objVersion() to return the header version
        of an HDF5 object.
    Added new class LinkAccPropList to be used by H5Location::exists()
    Added new exception: ObjHeaderIException for H5Object::objVersion()
    Rearranged source files in Makefile.am
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-12-28 08:44:01 -06:00
Binh-Minh Ribler
e05da1b533 Description:
Removed commented out code and fixed miscellaneous typos.
Platforms tested:
    Linux/32 2.6 (jam) (very minor)
2016-12-23 13:24:45 -06:00
Binh-Minh Ribler
798cdad29a Purpose: Improvement for HDFFV-10004
Description:
    When adding wrappers for H5Lexists, a new class, LinkAccPropList, was
    added to the C++ API, triggered complicated circular dependencies.  Thus,
    some improvement was made to resolve the problems.
    - Replaced existing functions openXxxType with individual type constructors
      + Added individual XxxType constructors to replace the existing functions
        openXxxType because it's rather awkward to use these functions.
      + Moved openXxxType from H5Location back to CommonFG
      + Put back CommonFG as a baseclass of Group for openXxxType functions.
      + This replacement should improve usability and prevent the problem of
        circular dependencies.
    - Removed overloaded constructor that takes an Attribute when there is
        already one that takes H5Location because Attribute inherits from
        H5Location now.
Platforms tested:
    Linux/32 2.6 (jam)
    Darwin (osx1010test)
    Linux/64 (platypus)
2016-12-19 00:34:18 -06:00
Binh-Minh Ribler
a903cbafa8 Description:
Removed obsolet macros from C++ API:
	H5_NO_NAMESPACE, H5_NO_STD, __cplusplus
    Leave OLD_HEADER_FILENAME because iostream.h might still be in use,
    until further checking is done.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
    Jelly
2016-10-19 15:50:17 -05:00
Binh-Minh Ribler
7ef33fa7b3 Purpose: Fix bug HDFFR-9920 cont.
Description:
    Adding user's test revealed a flaw in the fix.
    Moved CommonFG's functions in Group to H5Location, so that they
    could be called by objects that can be used to specify a location
    Also, rearranged many "#include" header files to resolve conflicts.

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-09-21 14:53:17 -05:00
Binh-Minh Ribler
b1c4fd77d9 [svn-r30311] Purpose: Fix bug HDFFR-9920 cont.
trunk:
Description:
    Continued rearranging the classes to model the relationship of HDF5
    objects more accurately.  The changes included:
    - in the baseclass list of Attribute, changed "public IdComponent" to
      "public H5Location", because location sometime can be specified with
      attribute
    - moved H5A wrappers in H5Location to H5Object because H5A functions
      can't be called on attribute id
    - removed the stubs Attribute::iterateAttrs and Attribute::renameAttr
    - removed Attribute::getFileName and Attribute::flush, because
          H5Location has them
    - result of the modified partial class diagram, regarding Attribute

                                IdComponent
                                     |
                                H5Location   AbstractDs
                                /       \   /
                        H5Object     Attribute
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-08-22 01:29:29 -05:00
Binh-Minh Ribler
c78f1ec882 [svn-r30309] Purpose: Fix bug HDFFR-9920
Description:
    Rearranged the classes to model the relationship of HDF5 objects more
    accurately.  The changes included:
    - moved CommonFG's methods to Group
    - removed CommonFG from Group's base class list
    - removed CommonFG from H5File's base class list and changed
      "public H5Location" to "public Group" in the base class list
    - CommonFG became unused
    - result of the modified partial class diagram:

                                IdComponent
                                     |
                                H5Location
                                /
                        H5Object
                           |
                        /  /  \
                DadaType Group DataSet
                          |
                        H5File
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-08-19 23:34:26 -05:00
Binh-Minh Ribler
ae0b749012 [svn-r30279] Purpose: Code improvement (HDFFR-9725)
Description:
    Removed deprecated functions in previous releases due to missing const.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-08-12 01:55:43 -05:00
Binh-Minh Ribler
c37607eb58 [svn-r29759] Purpose: Code improvements
Description:
    - Changed object in catch statements to reference
    - Replaced old-style casts or reinterpret_cast with static_cast
    - Removed unused name H5Library::need_cleanup
    - Removed Exception::printError from documentation
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-04-22 06:22:34 -05:00
Binh-Minh Ribler
116eed3ebd [svn-r29340] Purpose: Code cleanup
Description:
    - Removed many warnings:
        warning: use of old-style cast
        warning: enumeration value ‘H5D_VIRTUAL’ not handled in switch
        warning: comparison between signed and unsigned
      There are others of the same warnings and they will be taken care of
      in the next release.
    - Made some code reuse between overloads
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-03-08 07:23:54 -05:00
Binh-Minh Ribler
36c4634606 [svn-r29322] Purpose: Remove obsoletes
Description:
    Removed obsolete functions from the documentation.  They are still
    in the code, however, until the next two releases, just in case.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-03-07 16:02:17 -05:00
Binh-Minh Ribler
b346cb0599 [svn-r29306] Purpose: Add function
Description:
    Added member function ArrayType::operator= because ArrayType has
    pointer data members.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-03-07 10:42:30 -05:00
Binh-Minh Ribler
f17eb1e610 [svn-r27961] Purpose: Partial fix of issues HDFFV-9169 and HDFFV-9167
Description:
    Added wrappers for H5P[s/g]et_attr_phase_change and H5P[s/g]et_attr_creation_order

    // Sets attribute storage phase change thresholds.
    void setAttrPhaseChange(unsigned max_compact = 8, unsigned min_dense = 6)

    // Gets attribute storage phase change thresholds.
    void getAttrPhaseChange(unsigned& max_compact, unsigned& min_dense)

    // Sets tracking and indexing of attribute creation order.
    void setAttrCrtOrder(unsigned crt_order_flags)

    // Gets tracking and indexing settings for attribute creation order.
    unsigned getAttrCrtOrder()

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2015-10-05 23:31:58 -05:00
Binh-Minh Ribler
888a002cdd [svn-r27945] Purpose: Fix HDFFV-9529
Description:
    Merged from hdf5_CppAPI_Constants

    r27942:
    ------
    Description:
    - Added H5dont_atexit() to getPredType and all the getConstant's to prevent
    the C library from terminating before the C++ library cleanup.
    - More cleanup and added more comments

    r27923:
    ------
    - Updated more comments and moved some things around for consistency
    - Removed check for "new" failure, exceptions would be thrown

    r27922:
    ------
    Description:
        Added function headers and more comments for clarity.

    r27917:
    ------
    Description:
        The C++ library has several types of global constants from different
        classes, such as PropList, PredType, DataSpace, etc...  Previously,
        these global constants were declared statically and the C++ library used
        a constant, called PredType::AtExit, to detect when all the global
        contants are destroyed then close the C library (H5close).  This method
        relied on the order of the constants being created and destroyed and
        that PredType constants be the last to be destroyed.  In September 2015,
        it was recognized that the order in which the global constants were
        created and destroyed was actually undefined, thus can be different
        between different compilers.  This resulted in failure when compilers
        destroy PredType constants before others because when PredType::AtExit
        was destroyed, the C library was closed, so when the constants of other
        classes such as PropList or DataSpace were being deleted, the C library
        would not be available.

    Solution:
        The static approach is changed to dynamic.  In order to avoid an impact
        on existing applications, the static global constants are changed to
        constant references to the dynamically allocated objects.
        A detailed explanation of the new method and a description of the
        changes are in a Design Notes at the end of the file H5PredType.cpp.

        New functions added to support the new methods are listed below.

        class H5Library:
                // Returns a singleton H5Library to initialize the global
                // constants, invoked in IdComponent default constructor
                static H5Library* getInstance(); // public

                // Registers cleanup and terminating functions with atexit(),
                // called in IdComponent default constructor
                static void initH5cpp(void); // public

                // Calls H5close to terminate the library, registered with
                // atexit(), as the last thing to be done.
                static void termH5cpp(void); // public

        class PredType:
                // Creates the constants
                static void makePredTypes(); // private

                // Calls makePredTypes to create the constants and returns
                // the dummy constant PREDTYPE_CONST;
                static PredType* getPredTypes(); // private

        class DataSpace:
                // Creates the constant
                static DataSpace* getConstant(); // private

        class PropList:
                // Creates the constant
                static PropList* getConstant(); // private

        class DSetCreatPropList:
                // Creates the constant
                static DSetCreatPropList* getConstant(); // private

        class DSetMemXferPropList:
                // Creates the constant
                static DSetMemXferPropList* getConstant(); // private

        class FileCreatPropList:
                // Creates the constant
                static FileCreatPropList* getConstant(); // private

        class FileAccPropList:
                // Creates the constant
                static FileAccPropList* getConstant(); // private

        This function is added to PredType, DataSpace, PropList, and the four
        subclasses of PropList:
                // Deletes the constant
                static void deleteConstants(); // public

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2015-10-04 00:05:51 -05:00
Binh-Minh Ribler
f6d9d1fdc8 [svn-r26695] Purpose: Fixed HDFFV-7947 (cont.)
Description:
    - Put back the UNUSED parameters in dsets test because the change to remove
      the warning last time caused failure in setting filter, in turn, caused
      failure in the test with such obscure/unrelated errors!
    - Added incRefCount() to other constructors that missed from last time.
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2015-04-01 13:52:05 -05:00
Binh-Minh Ribler
98d1c2d9a9 [svn-r26655] Purpose: Fixed HDFFV-7947
Description:
    When copy constructor or constructor that takes an existing id is invoked,
    the C ref counter stays the same but there is an extra C++ object which
    later is destroyed and may cause the HDF5 id to be closed prematurely. The
    C++ library needs to increment the ref counter in these situations, so that
    the C library will not close the id when it is still being referenced.

    However, the incrementing of ref count left some objects opened at the end
    of the program, perhaps, due to compiler's optimization on cons/destructors.    The constructor, that takes an existing id, needs to increment the counter
    but it seems that the matching destructor wasn't invoked.  The workaround
    is to have a function for each class that has "id" that only sets the id
    and not increment the ref count for the library to use in these situations.
    These functions are "friend" and not public.

    The friend functions are:
        void f_Attribute_setId(Attribute *, hid_t)
        void f_DataSet_setId(DataSet *, hid_t)
        void f_DataSpace_setId(DataSpace *, hid_t)
        void f_DataType_setId(DataType *, hid_t)
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam gnu and Intel 15.0)
    SunOS 5.11 (emu)
2015-03-30 12:58:44 -05:00
Binh-Minh Ribler
66a7cc1289 [svn-r26456] Purpose: Fix warnings HDFFV-8658
Description:
    Fixed base classes that were in wrong order on the prototype lines and
    some misc. warnings.
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2015-03-15 01:45:24 -05:00
Binh-Minh Ribler
10f1e6acf8 [svn-r25640] Purpose: Fixed HDFFV-4259
Description:
    - Used H5I_INVALID_HID instead of 0 to initialized member "id" in classes
      that represent HDF5 objects.  For PropList, H5P_DEFAULT has to be used
      instead of H5I_INVALID_HID.
    - Added try/catch block to some dynamically allocating memory code and
      re-throw the bad_alloc exception with a message informing the location of
      the failure.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-30 13:20:36 -05:00
Binh-Minh Ribler
a75e8dd654 [svn-r25061] Description:
Put back overloaded functions for backward compatibility:
    - were replaced by better prototyped versions, such as Attribute::getName.
    - were modified to add const to constant arguments.
    Added notes for future removal in documentation.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-17 18:25:01 -05:00
Binh-Minh Ribler
d259d6e0ab [svn-r25020] Description:
- Fixed a few comments that Doxygen gave warnings on.
    - Removed stylesheet from configuration so Doxygen will use the default
        stylesheet and removed the CLANG-related lines to eliminate another
        error since we're not using that feature, so the lines should not
        present. (from cpp_doc_config)
Platforms tested:
    Linux/32 2.6 (jam) - only changing comments
2014-04-11 20:04:47 -05:00
Binh-Minh Ribler
a08f75b073 [svn-r24969] Description:
- Added wrappers to H5Object for H5Iget_name() to get object's name
        ssize_t getObjName(char *obj_name, size_t buf_size = 0) const;
        ssize_t getObjName(H5std_string& obj_name, size_t len = 0) const;
        H5std_string getObjName() const;
    - Added tests tobject.cpp
    - Added to various cleanup_* functions in tests to remove generated files
    - Added an overload H5I_type_t getHDFObjType() to get object's type
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu) with gmake
2014-04-06 17:36:15 -05:00
Binh-Minh Ribler
0fcac56705 [svn-r24938] Description:
- Overloaded Atribute::getName to take a char* for the attribute name:
        ssize_t Attribute::getName(char* attr_name, size_t buf_size)
    - Switched the arguments in this function:
        ssize_t getName(size_t buf_size, H5std_string& attr_name)
        so it became:
        ssize_t getName(H5std_string& attr_name, size_t buf_size)
        The second argument is default to 0, and can be skipped.
    - Removed this function:
        H5std_string getName(size_t buf_size); it'll collide with the
        first function when that function takes a NULL for the first
        argument, and uses default value for the second argument.
    - Added more tests
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-04-01 00:59:37 -05:00
Binh-Minh Ribler
f8fb310610 [svn-r24188] Purpose: Fixed bug introduced in r24163
Description:
    - The failure in daily test was caused by missing initialization of member
    "id" in a few constructors.  This is now fixed.
    - Added two overloaded H5Location::setComment
    - Improved some error reporting in H5Location
    - Improved error reporting in tests
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/64 2.6 (koala)/PGI compilers
2013-09-22 19:39:44 -05:00
Binh-Minh Ribler
1b22cc435e [svn-r24178] Back out the changes that cause daily test to fail r24163 2013-09-20 13:53:21 -05:00
Binh-Minh Ribler
4182c81add [svn-r24163] Purpose: More on HDFFV-7520 and HDFFV-533
Description:
    - Improved the changes in revisions r22836 and r23438, mainly on the
      wrappers of reference, dereference, get region, and set/getcomment.
    - Added more tests.

Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/ppc64 (ostrich)
2013-09-18 22:08:28 -05:00
Binh-Minh Ribler
d95f5e293a [svn-r24162] backing out a commit that includes wrong files 2013-09-18 21:41:00 -05:00
Binh-Minh Ribler
18b896112c [svn-r24161] Purpose: More on HDFFV-7520 and HDFFV-533
Description:
    - Completed the changes in revisions r22836 and r23438 with improvement
    on wrappers such as reference, dereference, get region, and set/getcomment.
    - Added more tests.
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/ppc64 (ostrich)
2013-09-18 20:54:54 -05:00
Binh-Minh Ribler
afb5fc5c35 [svn-r24143] Description:
Fixed comments, documentation, and mis-matched DOXYGEN_SHOULD_SKIP_THIS pairs.
Platforms tested:
    Linux/32 2.6 (jam)
    Regenerated and verified generated documentation.
2013-09-16 09:39:52 -05:00
Binh-Minh Ribler
5fcec401bd [svn-r22836] Purpose: Fix bug HDFFV-533 and add other missing functions
Description:
    In this bug, H5File doesn't have the ability to create attribute.  The
    following changes will provide that functionality and several others that
    were also missing:
    - Added an abstract class H5Location in between IdComponent and H5Object.
    - New class structure of IdComponent, H5Location, H5Object, H5File
                                IdComponent
                                     |
                                H5Location
                                /        \
                        H5Object        H5File
    - Wrappers in H5Object were moved to H5Location because the related C
      functions take either file, group, dataset, or named datatype ID.
    - Added wrapper for H5Rget_obj_type2
    - Added tests for file attributes and H5Rget_obj_type2 wrapper
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)
    SunOS 5.10 (linew)
2012-09-27 18:26:16 -05:00
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
Binh-Minh Ribler
19a6303205 [svn-r22128] Purpose: Fixed bug 4279
Description:
    Closed various HDF5 objects in DataSet::getInMemDataSize and
    Attribute::getInMemDataSize to remove some memory leaks.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (amani)
    SunOS 5.10 (linew)
2012-03-22 19:50:36 -05:00
Binh-Minh Ribler
aa0772d9b2 [svn-r19395] Purpose: Fixed bug 1903
Description:
    After a C++ API object is closed, its id should be reset regardless
    of the reference count of the underlying HDF5 object.  User reported
    the bug for Group, but it's applicable to all other objects.  Fixed.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2010-09-16 00:59:39 -05:00
Binh-Minh Ribler
a0911ce3de [svn-r18640] Description:
Added a null character to terminate a fixed-length string returned
    by H5Aread.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
2010-04-27 15:19:20 -05:00
Quincey Koziol
fd70b2afa8 [svn-r18197] Description:
Trim trailing whitespace from source code files with this command:

find . \( -name "*.[ch]" -or -name "*.cpp" -or -name "*.f90" \) -print |xargs -n 1 sed -i "" 's/[[:blank:]]*$//'

Tested on:
    None - eyeballed only
2010-01-29 23:29:13 -05:00
Binh-Minh Ribler
c1ad3676c4 [svn-r17238] Purpose: Fix bug and improve readability
Description:
    - Revised DataSet::write to pass in correct string buffer
    - Added member function DataSet::getInMemDataSize() to simplify
      getting the dataset's data size in memory.
    - Added private functions for reading fixed- and variable-length
      string data: p_read_fixed_len and p_read_variable_len.
    - Added tests to write/read array of strings to datasets.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-07-26 23:00:17 -05:00
Binh-Minh Ribler
0f9fd0af2d [svn-r17216] Purpose: Improve readability
Description:
    Divided Attribute::read into specific private functions for fixed-
    and variable-len string data: p_read_fixed_len and p_read_variable_len.

    Added test to write/read array of strings to attributes.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-07-21 16:02:58 -05:00
Binh-Minh Ribler
eed7245d7c [svn-r16815] Description:
Added member function Attribute::getInMemDataSize(), which is a wrapper
    of several C calls, to simplify getting the attribute's data size in
    memory.  Used this new function in Attribute::read to get the fixed-len
    string attribute data.

    Added to tests in tattr.cpp.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-04-21 09:09:23 -05:00
Binh-Minh Ribler
aa775d9738 [svn-r16787] Description:
Fixed to pass parameters to H5Awrite/H5Aread correctly so that
    all Attribute::write and Attribute::read methods work correctly
    for both fixed-length and variable-length string attributes.

    Added more test cases.

Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2009-04-18 23:35:19 -05:00
Binh-Minh Ribler
3677f54877 [svn-r15959] Description:
Added missing wrappers for H5Rdereference.
    Also, for these wrappers, improved exception handlings to report specific
        overloaded functions, where failure occurs.  Will do the same for more
        functions later...

Platforms tested:
    Linux 2.6 (kagiso)
    SunOS 5.10 (linew)
    FreeBSD (duty)
2008-10-26 21:30:06 -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