summaryrefslogtreecommitdiffstats
path: root/c++/src
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r3707] Purpose: Bug fixes and code clean upBinh-Minh Ribler2001-03-2513-173/+552
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* [svn-r3602] Binh-Minh Ribler2001-03-1028-320/+497
| | | | | | | | | | | | | | | | | | | | | 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)
* [svn-r3550] Binh-Minh Ribler2001-03-062-7/+7
| | | | | | | | | | | | | 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)
* [svn-r3540] Purpose:Binh-Minh Ribler2001-03-0234-81/+66
| | | | | | | | | | | | | | | | | | | | 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)
* [svn-r3534] Purpose:Bill Wendling2001-03-0230-3/+32
| | | | | | | | | 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)
* [svn-r3337] Binh-Minh Ribler2001-01-311-1/+1
| | | | | | | | | | | 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)
* [svn-r3293] Purpose:Bill Wendling2001-01-161-0/+0
| | | | | | | | | | | | Fixup Description: We were specifying a config file for the C++ stuff and it didn't need one. This would cause problems with compiling the C++ stuff since it wouldn't get the correct H5config.h file. Solution: Removed support for it. Platforms tested: Eirene
* [svn-r3199] Binh-Minh Ribler2000-12-2329-226/+146
| | | | | | | | | | | | | | | | | | 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)
* [svn-r3122] Purpose:Binh-Minh Ribler2000-12-136-204/+106
| | | | | | | | | | | | | | | | 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 Platforms tested: Solaris/CC 5.0 (arabica)
* [svn-r3121] Purpose:Binh-Minh Ribler2000-12-135-738/+272
| | | | | | | | | | | | | | | | | 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)
* [svn-r3114] Purpose: FixBinh-Minh Ribler2000-12-1212-14/+39
| | | | | | | | | | | | | | | | | | | | 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.
* [svn-r3090] Purpose:Bill Wendling2000-12-071-7/+7
| | | | | | | | | | | Fix Description: Windows couldn't handle the .C extension. The filenames had to be changed to *.cpp instead. Solution: Changed in the Makefiles to accomodate said change. Platforms tested: Eyeballed.
* [svn-r3082] Purpose:Binh-Minh Ribler2000-12-077-746/+0
| | | | | | | Renaming source files for portability Description: Removed *.C files after adding the corresponding *.cpp files. Platforms tested:
* [svn-r3081] Binh-Minh Ribler2000-12-0718-3962/+0
| | | | | | | | Purpose: Renaming source files for portability Description: Removed *.C files after adding the corresponding *.cpp files. Platforms tested:
* [svn-r3080] Binh-Minh Ribler2000-12-0725-0/+4715
| | | | | | | | | | | 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)
* [svn-r3079] Purpose: bug fix - by C APIBinh-Minh Ribler2000-12-064-10/+17
| | | | | | | | | | | | | | | | | Description: The prototype of two C API functions, H5Tget_offset and H5Sget_simple_extent_npoints was changed to fix bug #446, resulting in the need for updating the two corresponding C++ API functions. Solution: - Changed the return type of AtomType::getOffset from size_t to int, and the error return value from 0 to -1. - Changed the return type of DataSpace::getSimpleExtentNpoints from hsize_t to hssize_t, and the error value from 0 to -1. Platforms tested: arabica (sparc-sun-solaris 2.7)
* [svn-r3074] Purpose:Bill Wendling2000-12-041-0/+2
| | | | | | | | | | | Improvement Description: Made the Makefiles better. Solution: Added standard macros concerning where things are place. Like libraries and so forth. Platforms tested: Linux
* [svn-r2932] Purpose:Bill Wendling2000-11-151-2/+2
| | | | | | | | Changed to handle tracing in C++ files. Description: Pointed to the correct ``trace'' program (the one in hdf5/bin/) Platforms tested: Linux
* [svn-r2926] Purpose:Bill Wendling2000-11-151-0/+0
| | | | Needed Dependencies file
* [svn-r2920] Purpose:Bill Wendling2000-11-151-0/+0
| | | | | | | | | | | | Buglet fix... Description: When configuring, configure would complain about there not being a confdefs.h file. Solution: Added a src/H5config.h file which configure can generate. This can be used for configure stuff later, but is empty now. Platforms tested: Linux
* [svn-r2916] Purpose:Bill Wendling2000-11-151-1/+1
| | | | | | | include file Description: Added header file to the PUB_HDR macro so that it'll be installed with the library.
* [svn-r2914] Purpose:Bill Wendling2000-11-151-1/+1
| | | | | | | | | | | | | Bug fix Description: libtool complained that the library name didn't have a ``lib'' prefix. Also, the $(top_srcdir) macro points to the top of the c++/ directory, which was messing up the -I$(top_srcdir)/src stuff. It needed to be changed to the correct value. Solution: Made it so Platforms tested: Linux
* [svn-r2901] Purpose:Bill Wendling2000-11-141-0/+34
| | | | Adding Makefile
* [svn-r2897] Purpose:Binh-Minh Ribler2000-11-1455-0/+6782
C++ API for 1.3.x branch Description: The *.C and *.h files named different than those in 1.2.x. They are in the form: 'H5' + classname, or just classname if the classname is already prefixed with 'H5' to avoid ambiguity in documentation context. This version has several hidden bugs fixed and an improvement on the reference counting approach. The classes and their inheritance structure are listed below: --------------------------------------- H5Library Exception RefCounter IdComponent H5File DataSpace H5Object Group AbstractDs DataSet Attribute DataType PredType EnumType CompType AtomType StrType IntType FloatType PropList FileCreatPropList FileAccPropList DSetCreatPropList DSetMemXferPropList --------------------------------------- IdComponent uses RefCounter to keep track of opened objects so proper termination of HDF5 objects can be maintained. Each class has a .h file containing the class declaration and a .C file containing its definition. In addition to the classes files, the following files do not have class information: - H5Cpp.h: header file to be included in user's application - H5Idtemplates.h: contains a template function used by several classes - H5Classes.h: contains forward class declarations - H5CommonFG.*: contains common code used by classes H5File and Group - H5Include.h: contains the hdf5.h header file and the #undef RCSID to work around the problem: multiple defined RcsId - H5Alltypes.h: simply serves as a container to hold the header files of all datatypes to simplify the header file inclusion Platforms: Solaris (arabica) and Linux