Commit Graph

10 Commits

Author SHA1 Message Date
Binh-Minh Ribler
9439854caf [svn-r8267] Purpose:
Cleaning up warnings

Description:
    Many exception constructors have warnings about reference to temporary
    location because of the parameter initialization, for example,
    "const string& var = 0."

Solution:
    Changed "string&" parameters to pass by value for these constructors.
    Consequently, passing string by value also takes care of char pointers
    so the overloaded constructors for char pointers are then removed.
    Also, instead of setting Exception::detailMessage to null string, I
    set it to DEFAULT_MSG ("No detailed information provided") by default.

Platforms:
    SunOS 5.7 (arabica)
    Linux 2.4 (eirene)
    IA-64 (titan)
2004-03-20 16:18:55 -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
MuQun Yang
fcc1eea172 [svn-r5932]
Purpose:
use H5_DLLCPP to replacer __DLLCPP__ for c++ interfaces.
Description:
Solution:
Platforms tested:
linux 2.2.18smp, IRIX64, solaris 2.7, windows 2000
2002-09-20 15:37:56 -05:00
Binh-Minh Ribler
bb07809e41 [svn-r5270] Purpose: bug fix
Description:
    The default constructor of H5File was missing.  It's now added.

Platforms:
    SunOS 5.7 (arabica)
    Linux 6.2 (eirene)
    IRIX 6.5.11 (modi4)
2002-04-26 07:09:17 -05:00
Binh-Minh Ribler
855aa23823 [svn-r4977]
Purpose:
    Adding support for dll
Description:
    Added __DLLCPP__ to all public classes and templates.
    Added #include "H5Include.h" to H5RefCounter.cpp because of the
          use of DLLCPP in .h file and it needs the following chain:
                H5Include.h/hdf5.h/H5public.h/H5api_adpt.h
    Added #pragma warning(disable: 4251) to H5Exception.h to eliminate
        this warning on private data members of type 'string.'  This
        occurs because 'string' is not yet instantiated at compilation
        time; however, since the class is exported, the warning is
        harmless.
    Changed this member function's parameter to be passed as reference.
        from:
            void CompType::insertMember( const string name,...
        to:
            void CompType::insertMember( const string& name,...
Platforms tested:
    Linux 6.2 (eirene)
    Windows 2000
2002-02-15 19:49:46 -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
42e15a3d6a [svn-r3540] Purpose:
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)
2001-03-02 13:53:15 -05:00
Bill Wendling
b545a4bb03 [svn-r3534] Purpose:
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)
2001-03-02 12:50:58 -05:00
Binh-Minh Ribler
1aec17231d [svn-r3122] 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

Platforms tested:
        Solaris/CC 5.0 (arabica)
2000-12-13 08:06:57 -05:00
Binh-Minh Ribler
92041a6865 [svn-r2897] Purpose:
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
2000-11-14 16:30:12 -05:00