Commit Graph

39 Commits

Author SHA1 Message Date
Binh-Minh Ribler
2cfa680366 [svn-r15998] Description:
Fixed various comments/headers to update the C++ reference manual.

Platforms tested:
    Linux 2.6 (kagiso) - to make certain no typo introduced
2008-10-30 14:05:47 -05:00
Binh-Minh Ribler
9924714992 [svn-r15960] Description:
Oops, I accidentally only did "svn commit" instead of "svn commit -m" as
    instructed.
    "ported revisions 15958 to 15959 (Added missing wrappers for H5Rdereference)
    from trunk."
2008-10-26 22:02:39 -05:00
Quincey Koziol
b9be045596 [svn-r15629] 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 11:22:16 -05:00
Binh-Minh Ribler
836f7b53cc [svn-r15401] Purpose: Fix bug
Description:
    Changed all subclasses' setId to p_setId and put back setId in
    IdComponent.  p_setId is used in the library where the id provided
    by a C API passed on to user's application in the form of a C++ API
    object, which will be destroyed properly, and so p_setId does not
    call incRefCount.  On the other hand, the public version setId is
    used by other applications, in which the id passed to setId needs
    to be closed properly by the application, so setId must call incRefCount
    for the new object to prevent prematurely closing of the id.

Platforms tested:
    Linux 2.6 (kagiso)

    Still on going with these two platforms, but needed to check in before
    daily tests start.
    SunOS 5.10 (linew)
    FreeBSD (duty)
2008-07-24 16:18:28 -05:00
Binh-Minh Ribler
d6dc8a4dfd [svn-r15386] Purpose: Fix bug
Description:
    A bug in reference counter was exposed when Ray fixed H5Awrite in
    the main library.  ::setId() called incRefCount when it shouldn't.
    Made sure that id's reference counter is manually incremented
    properly in copy constructor and operator= only.  The main library
    handles the rest.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-07-18 15:49:32 -05:00
Binh-Minh Ribler
988e907b11 [svn-r15046] 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.

    Also fixed bugzilla 1045: revised Attribute::write and Attribute::read
    wrappers to handle memory allocation/deallocation properly. (bugzilla 1045)

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-05-20 15:24:44 -05:00
Quincey Koziol
94153c6c3d [svn-r14148] Description:
Add H5Rget_obj_type() to the API versioning and switch internal
routines to use H5Rget_obj_type2()

	Misc. other code cleanups, etc.

Tested on:
        FreeBSD/32 6.2 (duty)
        FreeBSD/64 6.2 (liberty)
        Linux/32 2.6 (kagiso)
        Linux/64 2.6 (smirom)
        AIX/32 5.3 (copper)
        Solaris/32 2.10 (linew)
        Mac OS X/32 10.4.10 (amazon)
2007-09-13 20:52:38 -05:00
Quincey Koziol
be12aa63a0 [svn-r14147] Description:
Clean up some "WANT_H5_V1_4_COMPAT" #ifdefs that somehow survived this
far...

Tested on:
	FreeBSD/32 6.2 (duty)
2007-09-13 13:32:01 -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
daa61b5986 [svn-r12795] Purpose: Fixing bug
Description:
    Wrappers of H5Rcreate had incorrect prototypes.

Solution:
    Added these overloaded functions for H5Rcreate wrapper to IdComponent:
        void reference(void* ref, const char* name, DataSpace& dataspace,
                        H5R_type_t ref_type = H5R_DATASET_REGION) const;
        void reference(void* ref, const char* name) const;
        void reference(void* ref, const H5std_string& name) const;

    Added these overloaded functions for H5Rdereference:
        void dereference(IdComponent& obj, void* ref);
        DataSet(IdComponent& obj, void* ref);
        Group(IdComponent& obj, void* ref);
        DataType(IdComponent& obj, void* ref);

    The incorrect wrappers will be removed after announcing.

Platform tested:
    Linux 2.4 (heping)
    AIX 5.1 (copper)
    SunOS 5.8 64-bit (sol)
2006-10-22 03:22:30 -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
deec486732 [svn-r12368] Purpose: Fixed bug
Description:
    Shanti compiler destroy unnamed objects later than others, which caused
    some reference counting test fail.  Revised the test so that destructors
    are called at the same time, regardless the differences of compiler
    implementation.

    Revised some constructors, close, operator=, and destructors to make
    sure that all the object ids are handled properly.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.9 (shanti)
    HPUX 11.00 (kelgia)
    AIX 5.1 (copper)
2006-05-23 12:59:40 -05:00
Elena Pourmal
82d3e6585e [svn-r12256] Purpose: Bug fix
Description: "using std::count" statement caused the problems on copper and kelgia



Solution: I believe this statement is not needed at all (will verify with
          more daily tests and Binh-Minh). Removed.

Platforms tested: heping, mir with Intel compiler, copper with -q64,
                  shanti (there is a known failure in tatrr test)

Misc. update:
2006-04-15 12:16:23 -05:00
Elena Pourmal
3468ff3a5c [svn-r12253] Purpose: Maintenance
Description: Brought VMS changes back. My previous note about
             using std::count; should be in this log.
             C++ on VMS doesn't support "using std::count"

Solution: IFDEF'ed with H5_VMS (until Binh-Minh has a chance to look into it and
          propose a different solution)

Platforms tested: VMS server, heping

Misc. update:
2006-04-14 16:43:29 -05:00
Binh-Minh Ribler
6f7076f47b [svn-r12200] Purpose: Maintenance
Description:
    Changed to alias string instead of std, i.e. H5std_string instead
    of H5std, because the old way wasn't working when std didn't exist.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
    HPUX 11.00 (kelgia) - this was the problematic platform but I wasn't
                                able to test before.
2006-04-05 11:23:39 -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
Elena Pourmal
3d85420836 [svn-r12074] Purpose: Typo fix
Description: There was no macro name in ifdef statement
               (it was commented out ;-))

Solution: Fixed the typo

Platforms tested: tested on heping with g++

Misc. update:
2006-03-10 08:31:52 -05:00
Elena Pourmal
07d07eaae5 [svn-r12052] Purpose: VMS port
Description: insert method didn't work for VMS.

Solution: Used append methos to form the string; this may become the change
          for all platforms after more testing

Platforms tested: heping, VMS server

Misc. update:
2006-03-09 16:22:07 -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
f74bef15ce [svn-r11210] Purpose: Code improvement
Description:
    Made use of IdComponent::inMemFunc in more classes.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.8 64-bit (sol)
2005-08-08 10:42:39 -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
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
Binh-Minh Ribler
4a04b0c05c [svn-r9127] Purpose: Adding wrapper for new C API and other updates
Description:
    Added wrappers for H5Fget_name:
        H5File::getFileName
        H5Object::getFileName
    Moved some functions from Group into the base class CommonFG for
        H5File too.

Platforms tested:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
2004-08-19 23:29:58 -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
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
f5492ae03b [svn-r8593] Purpose:
Add more C++ wrapper and documentation - incrementally check-in

Description
    Added another overloaded constructor to StrType.
    Added doxygen documentation to H5IdComponent.cpp.
    Corrected some comments.

    This is an incremental check-in to preserve the code, corresponding
    tests will follow in a few weeks.

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

Misc. update:
2004-05-27 15:55:53 -05:00
Binh-Minh Ribler
315ca49e4a [svn-r8588] Purpose:
Add C++ wrappers - incrementally check-in

Description
    Added wrapper for these C APIs:
        H5Rcreate
        H5Rget_obj_type
        H5Rget_region

    This is an incremental check-in to preserve the code, corresponding
    tests will follow in a few weeks.

Platforms:
    Linux 2.4 (eirene)
    I'm checking the code out and test on arabica too.

Misc. update:
2004-05-27 02:54:58 -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
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
9cbeb3c53f [svn-r3121] Purpose:
Fix and improve

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

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

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

Platform:
	Solaris (arabica).  Also tried to build on Dec Alpha but still
	not linked due to some missing compiler flags; its compilation
	went fine though.
2000-12-11 23:40:09 -05:00
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