diff options
-rw-r--r-- | c++/src/H5CommonFG.h | 2 | ||||
-rw-r--r-- | c++/src/H5Exception.cpp | 57 | ||||
-rw-r--r-- | c++/src/H5Exception.h | 37 | ||||
-rw-r--r-- | c++/src/H5File.cpp | 2 | ||||
-rw-r--r-- | c++/src/H5File.h | 2 | ||||
-rw-r--r-- | c++/src/H5Group.cpp | 2 | ||||
-rw-r--r-- | c++/src/H5Group.h | 2 |
7 files changed, 34 insertions, 70 deletions
diff --git a/c++/src/H5CommonFG.h b/c++/src/H5CommonFG.h index 2d16282..0d20d77 100644 --- a/c++/src/H5CommonFG.h +++ b/c++/src/H5CommonFG.h @@ -116,7 +116,7 @@ class H5_DLLCPP CommonFG { StrType openStrType( const char* name ) const; // for H5File and Group to throw appropriate exception - virtual void throwException(const string& func_name, const string& msg) const = 0; + virtual void throwException(const string func_name, const string msg) const = 0; CommonFG(); virtual ~CommonFG(); diff --git a/c++/src/H5Exception.cpp b/c++/src/H5Exception.cpp index 7d6218c..04dca00 100644 --- a/c++/src/H5Exception.cpp +++ b/c++/src/H5Exception.cpp @@ -22,32 +22,13 @@ namespace H5 { #endif // H5_NO_STD #endif +const string Exception::DEFAULT_MSG("No detailed information provided"); + // Default constructor Exception::Exception() : detailMessage(""), funcName("") {} -// Constructor taking only a detailed message as string object -//Exception::Exception(const string& message) : detailMessage(message) {} - // Constructor taking a function name and a detailed message as string objects -Exception::Exception(const string& func_name, const string& message) : detailMessage(message), funcName(func_name) {} - -// Constructor taking a detailed message as character string -// digital alpha (gondolin) produces compilation error at static_cast<string> -// so I replaced this constructor by the one below it -//Exception::Exception( const char* message) : detailMessage(static_cast<string>(message)) {} -//Exception::Exception(const char* message) -//{ - //detailMessage = string(message); -//} - -// Constructor taking a function name and a detailed message as character -// strings -Exception::Exception(const char* func_name, const char* message) -{ - detailMessage = string(message); - if (func_name != NULL) - funcName = string(func_name); -} +Exception::Exception(const string func_name, const string message) : detailMessage(message), funcName(func_name) {} // copy constructor Exception::Exception( const Exception& orig ) @@ -153,7 +134,7 @@ const char* Exception::getCFuncName() const // Prints the error stack in a default manner. void Exception::printError( FILE* stream ) const { - herr_t ret_value = H5Eprint( H5E_DEFAULT, NULL ); // print to stderr + herr_t ret_value = H5Eprint( H5E_DEFAULT, stream ); // print to stderr if( ret_value < 0 ) throw Exception( "Exception::printError", "H5Eprint failed" ); } @@ -161,53 +142,43 @@ void Exception::printError( FILE* stream ) const Exception::~Exception() {} FileIException::FileIException():Exception(){} -FileIException::FileIException(const string& func_name, const string& message) : Exception(func_name, message) {} -FileIException::FileIException(const char* func_name, const char* message) : Exception(func_name, message) {} +FileIException::FileIException(const string func_name, const string message) : Exception(func_name, message) {} FileIException::~FileIException() {} GroupIException::GroupIException():Exception(){} -GroupIException::GroupIException(const string& func_name, const string& message) : Exception(func_name, message) {} -GroupIException::GroupIException(const char* func_name, const char* message) : Exception(func_name, message) {} +GroupIException::GroupIException(const string func_name, const string message) : Exception(func_name, message) {} GroupIException::~GroupIException() {} DataSpaceIException::DataSpaceIException():Exception(){} -DataSpaceIException::DataSpaceIException(const string& func_name, const string& message) : Exception(func_name, message) {} -DataSpaceIException::DataSpaceIException(const char* func_name, const char* message) : Exception(func_name, message) {} +DataSpaceIException::DataSpaceIException(const string func_name, const string message) : Exception(func_name, message) {} DataSpaceIException::~DataSpaceIException() {} DataTypeIException::DataTypeIException():Exception(){} -DataTypeIException::DataTypeIException(const string& func_name, const string& message) : Exception(func_name, message) {} -DataTypeIException::DataTypeIException(const char* func_name, const char* message) : Exception(func_name, message) {} +DataTypeIException::DataTypeIException(const string func_name, const string message) : Exception(func_name, message) {} DataTypeIException::~DataTypeIException() {} PropListIException::PropListIException():Exception(){} -PropListIException::PropListIException(const string& func_name, const string& message) : Exception(func_name, message) {} -PropListIException::PropListIException(const char* func_name, const char* message) : Exception(func_name, message) {} +PropListIException::PropListIException(const string func_name, const string message) : Exception(func_name, message) {} PropListIException::~PropListIException() {} DataSetIException::DataSetIException():Exception(){} -DataSetIException::DataSetIException(const string& func_name, const string& message) : Exception(func_name, message) {} -DataSetIException::DataSetIException(const char* func_name, const char* message) : Exception(func_name, message) {} +DataSetIException::DataSetIException(const string func_name, const string message) : Exception(func_name, message) {} DataSetIException::~DataSetIException() {} AttributeIException::AttributeIException():Exception(){} -AttributeIException::AttributeIException(const string& func_name, const string& message) : Exception(func_name, message) {} -AttributeIException::AttributeIException(const char* func_name, const char* message) : Exception(func_name, message) {} +AttributeIException::AttributeIException(const string func_name, const string message) : Exception(func_name, message) {} AttributeIException::~AttributeIException() {} ReferenceException::ReferenceException():Exception(){} -ReferenceException::ReferenceException(const string& func_name, const string& message) : Exception(func_name, message) {} -ReferenceException::ReferenceException(const char* func_name, const char* message) : Exception(func_name, message) {} +ReferenceException::ReferenceException(const string func_name, const string message) : Exception(func_name, message) {} ReferenceException::~ReferenceException() {} LibraryIException::LibraryIException():Exception(){} -LibraryIException::LibraryIException(const string& func_name, const string& message) : Exception(func_name, message) {} -LibraryIException::LibraryIException(const char* func_name, const char* message) : Exception(func_name, message) {} +LibraryIException::LibraryIException(const string func_name, const string message) : Exception(func_name, message) {} LibraryIException::~LibraryIException() {} IdComponentException::IdComponentException(): Exception() {} -IdComponentException::IdComponentException(const string& func_name, const string& message) : Exception(func_name, message) {} -IdComponentException::IdComponentException(const char* func_name, const char* message) : Exception(func_name, message) {} +IdComponentException::IdComponentException(const string func_name, const string message) : Exception(func_name, message) {} IdComponentException::~IdComponentException() {} #ifndef H5_NO_NAMESPACE diff --git a/c++/src/H5Exception.h b/c++/src/H5Exception.h index 2ae9093..5a86b31 100644 --- a/c++/src/H5Exception.h +++ b/c++/src/H5Exception.h @@ -32,8 +32,7 @@ class H5_DLLCPP Exception { // Creates an exception with a function name where the failure occurs // and an optional detailed message - Exception( const string& func_name, const string& message = 0); - Exception( const char* func_name, const char* message = NULL); + Exception(const string func_name, const string message = DEFAULT_MSG); // copy constructor Exception( const Exception& orig); @@ -85,85 +84,79 @@ class H5_DLLCPP Exception { #endif string detailMessage; string funcName; + protected: + // Default value for detailMessage + static const string DEFAULT_MSG; + }; class H5_DLLCPP FileIException : public Exception { public: FileIException(); - FileIException( const string& func_name, const string& message = NULL); - FileIException( const char* func_name, const char* message = NULL); + FileIException(const string func_name, const string message = DEFAULT_MSG); virtual ~FileIException(); }; class H5_DLLCPP GroupIException : public Exception { public: GroupIException(); - GroupIException( const string& func_name, const string& message=NULL); - GroupIException( const char* func_name, const char* message = NULL); + GroupIException(const string func_name, const string message = DEFAULT_MSG); virtual ~GroupIException(); }; class H5_DLLCPP DataSpaceIException : public Exception { public: DataSpaceIException(); - DataSpaceIException(const string& func_name, const string& message=NULL); - DataSpaceIException(const char* func_name, const char* message = NULL); + DataSpaceIException(const string func_name, const string message = DEFAULT_MSG); virtual ~DataSpaceIException(); }; class H5_DLLCPP DataTypeIException : public Exception { public: DataTypeIException(); - DataTypeIException(const string& func_name, const string& message = NULL); - DataTypeIException(const char* func_name, const char* message = NULL); + DataTypeIException(const string func_name, const string message = DEFAULT_MSG); virtual ~DataTypeIException(); }; class H5_DLLCPP PropListIException : public Exception { public: PropListIException(); - PropListIException(const string& func_name, const string& message=NULL); - PropListIException(const char* func_name, const char* message = NULL); + PropListIException(const string func_name, const string message = DEFAULT_MSG); virtual ~PropListIException(); }; class H5_DLLCPP DataSetIException : public Exception { public: DataSetIException(); - DataSetIException(const string& func_name, const string& message=NULL); - DataSetIException(const char* func_name, const char* message = NULL); + DataSetIException(const string func_name, const string message = DEFAULT_MSG); virtual ~DataSetIException(); }; class H5_DLLCPP AttributeIException : public Exception { public: AttributeIException(); - AttributeIException(const string& func_name, const string& message=NULL); - AttributeIException(const char* func_name, const char* message = NULL); + AttributeIException(const string func_name, const string message = DEFAULT_MSG); virtual ~AttributeIException(); }; class H5_DLLCPP ReferenceException : public Exception { public: ReferenceException(); - ReferenceException(const string& func_name, const string& message=NULL); - ReferenceException(const char* func_name, const char* message = NULL); + ReferenceException(const string func_name, const string message=DEFAULT_MSG); virtual ~ReferenceException(); }; class H5_DLLCPP LibraryIException : public Exception { public: LibraryIException(); - LibraryIException(const string& func_name, const string& message=NULL); - LibraryIException(const char* func_name, const char* message = NULL); + LibraryIException(const string func_name, const string message=DEFAULT_MSG); virtual ~LibraryIException(); }; class H5_DLLCPP IdComponentException : public Exception { public: IdComponentException(); - IdComponentException(const string& func_name, const string& message=NULL); - IdComponentException(const char* func_name, const char* message = NULL); + IdComponentException(const string func_name, const string message=DEFAULT_MSG); virtual ~IdComponentException(); }; diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index 75c9e55..e85700c 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -185,7 +185,7 @@ void H5File::p_close() const // exception can be thrown for file or group. The func_name is a member // function of CommonFG and "H5File::" will be inserted to indicate the // function called is an implementation of H5File -void H5File::throwException(const string& func_name, const string& msg) const +void H5File::throwException(const string func_name, const string msg) const { string full_name = func_name; full_name.insert(0, "H5File::"); diff --git a/c++/src/H5File.h b/c++/src/H5File.h index 7fccde5..2e088ad 100644 --- a/c++/src/H5File.h +++ b/c++/src/H5File.h @@ -40,7 +40,7 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG { virtual hid_t getLocId() const; // Throw file exception - virtual void throwException(const string& func_name, const string& msg) const; + virtual void throwException(const string func_name, const string msg) const; // Determines if a file, specified by its name, is in HDF5 format diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp index 279c620..03dca68 100644 --- a/c++/src/H5Group.cpp +++ b/c++/src/H5Group.cpp @@ -138,7 +138,7 @@ void Group::p_close() const } // Throw file exception -void Group::throwException(const string& func_name, const string& msg) const +void Group::throwException(const string func_name, const string msg) const { string full_name = func_name; full_name.insert(0, "Group::"); diff --git a/c++/src/H5Group.h b/c++/src/H5Group.h index 25c1b9e..7967533 100644 --- a/c++/src/H5Group.h +++ b/c++/src/H5Group.h @@ -47,7 +47,7 @@ class H5_DLLCPP Group : public H5Object, public CommonFG { virtual hid_t getLocId() const; // Throw group exception - virtual void throwException(const string& func_name, const string& msg) const; + virtual void throwException(const string func_name, const string msg) const; // Used by the API to appropriately close a group |