Commit Graph

41 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
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
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
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
32bdd82cc8 [svn-r29782] Purpose: Code improvement
Description:
    - Removed ArrayType::rank and ArrayType::dimensions and modified the methods
      ArrayType::getArrayNDims and ArrayType::getArrayDims to always call the
      C functions to get the rank and dimensions.
    - Overloaded ArrayType::getArrayNDims and ArrayType::getArrayDims to provide
      const version and marked the non-const version deprecated.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-04-24 10:52:09 -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
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
0d68aa89ce [svn-r28905] Purpose: Fix user reported problem
Description:
    User Adam Rosenberger reported a failure when using the member function
    AbstractDs::getArrayType().  This problem was caused by missing
    initialization of the ArrayType's members in some cases.
Solution:
    - Added ArrayType::setArrayInfo() to retrieve rank and dimensions of
      an array and store them in memory for easy access.
    - Re-factored a few functions to use the new function.
    - We'll give him 1.8.16 patch
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-01-15 10:53:33 -05:00
Binh-Minh Ribler
bd995868ee [svn-r28047] Purpose: Fix memory leaks
Description:
    - Implemented the friend function
        void f_PropList_setId(PropList* plist, hid_t new_id)
      to work around the same problem described in trunk r26655, for the
      API DataSet::getCreatePlist()
    - Cleaned up some comments and obsolete functions
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2015-10-12 23:57:28 -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
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
a382658282 [svn-r26457] Purpose: Fix warnings HDFFV-8658
Description:
    The following two constructors of classes: AbstractDs, IdComponent,
    H5Location, and H5Object are no longer appropriate after the data member
    "id" had been moved from IdComponent to the sub-classes.

    The copy constructors are noop and will be generated by the compilers if
    needed so they can be removed in 1.8.15 without effecting applications. The
    other constructors will be removed from 1.10 release, and then from 1.8 if
    their removal does not raise any problems in at least two 1.10 releases.

    <Classname>(const hid_t h5_id);
    <Classname>(const <Classname>& original);

    Deprecation warnings are added to each of these classes.

    The other classes are changed to call the default constructor instead of
    one of the constructors above.
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2015-03-15 01:47:56 -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
ec7f4dc603 [svn-r18727] Purpose: Fixed bug 1719
Description: Closed a temporarily opened datatype to clean up memory leak,
    in getTypeClass.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2010-05-06 11:15:05 -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
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
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
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
07592ad7c3 [svn-r11206] Purpose: Additional wrapper/Code improvement
Description:
    Added wrapper for H5Iget_type.
    Added try/catch to many APIs that call private functions so that more
        specific information can be provided at failure.
    Added IdComponent::inMemFunc to help providing specific info.
    Added const to parameters of several functions that missed that.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
    AIX 5.1 (copper)
    IRIX64 with -n32 (modi4)
    HPUX 11.00 (kelgia)
2005-08-07 22:53:58 -05:00
Binh-Minh Ribler
f208550696 [svn-r11149] Purpose: Fix bugzilla #406
Description:
    Added these missing member functions:
        AbstractDs::getArrayType
        AbstractDs::getVarLenType
        CommonFG::openArrayType
        CommonFG::openVarLenType
        CompType::getMemberArrayType
        CompType::getMemberVarLenType

Platforms tested:
    Linux 2.4 (heping)
    IRIX64 with -n32 (modi4)
    Linux 2.4 w/PGI (colonelk)
2005-07-24 12:52:43 -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
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
02a1c32b1f [svn-r8569] Purpose:
Add/Correct documentation

Description:
    Added doxygen documentation to:
        Exception.cpp
        H5CompType.cpp
        H5FcreatProp.cpp

    and corrected some typos in comments for:
        H5AbstractDs.cpp
        H5EnumType.cpp
        H5File.cpp

Platforms:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
2004-05-23 23:02:58 -05:00
Binh-Minh Ribler
85ff720d0c [svn-r8555] Purpose:
Add documentation

Description:
    Added doxygen documentation and removed incorrect comments.

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

Misc. update:
2004-05-20 15:54:30 -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
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