-// gdcm.h
-
-// gdcmlib Intro:
-// * gdcmlib is a library dedicated to reading and writing dicom files.
-// * LGPL for the license
-// * lightweigth as opposed to CTN or DCMTK which come bundled which try
-// to implement the full DICOM standard (networking...). gdcmlib concentrates
-// on reading and writing
-// * Formats: this lib should be able to read ACR-NEMA v1 and v2, Dicom v3 (as
-// stated in part10). [cf dcmtk/dcmdata/docs/datadict.txt]
-// * Targeted plateforms: Un*xes and Win32/VC++6.0
-//
-//
+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: gdcmException.h,v $
+ Language: C++
+ Date: $Date: 2004/06/20 18:08:47 $
+ Version: $Revision: 1.13 $
+
+ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+ l'Image). All rights reserved. See Doc/License.txt or
+ http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
#ifndef GDCM_EXCEPTION_H
#define GDCM_EXCEPTION_H
+#include "gdcmCommon.h"
#include <string>
#include <iostream>
#include <exception>
-using namespace std;
-#ifdef _MSC_VER
-#define GDCM_EXPORT __declspec( dllexport )
-#else
-#define GDCM_EXPORT
-#endif
-
-/**
+//-----------------------------------------------------------------------------
+/*
* Any exception thrown in the gdcm library
*/
-class GDCM_EXPORT gdcmException : public exception {
- protected:
- /// error message
- string from;
- /// error message
- string error;
-
- /// exception caught within exception class: print error message and die
- static void fatal(const char *from) throw();
-
- /// try to discover this (dynamic) class name
- virtual string getName() const throw();
-
- public:
- /**
- * Builds an exception with minimal information: name of the thrower
- * method and error message
- *
- * @param from name of the thrower
- * @param error error description string
- */
- explicit gdcmException(const string &from, const string &error = "")
+class GDCM_EXPORT gdcmException : public std::exception {
+public:
+ /*
+ * Builds an exception with minimal information: name of the thrower
+ * method and error message
+ *
+ * @param from name of the thrower
+ * @param error error description string
+ */
+ explicit gdcmException(const std::string &from, const std::string &error = "")
throw();
-
-
- /**
- * virtual descructor makes this class dynamic
- */
- virtual ~gdcmException() {
- }
-
- /// returns error message
- const string &getError(void) const throw() {
+
+ /**
+ * \brief virtual destructor makes this class dynamic
+ */
+ virtual ~gdcmException() throw() {
+ }
+
+ /// exception caught within exception class: print error message and die
+ static void fatal(const char *from) throw();
+
+ /// returns error message
+ const std::string &getError(void) const throw() {
return error;
- }
+ }
- /// returns exception name string
- operator const char *() const throw();
+ /// try to discover this (dynamic) class name
+ virtual std::string getName() const throw();
- /// returns exception name string (overloads std::exception::what)
- virtual const char *what() const throw() {
+ /// returns exception name string (overloads std::exception::what)
+ virtual const char *what() const throw() {
return (const char *) *this;
- }
+ }
+ /// returns exception name string
+ operator const char *() const throw();
- friend ostream& operator<<(ostream &os, const gdcmException &e);
-
-};
+ friend std::ostream& operator<<(std::ostream &os, const gdcmException &e);
-
-/** prints exception stack on output stream
- * @param os output stream
- * @param e exception to print
- * @returns output stream os
- */
-ostream& operator<<(ostream &os, const gdcmException &e);
+protected:
+ /// error message part 1
+ std::string from;
+ /// error message part 2
+ std::string error;
+};
-/**
+//-----------------------------------------------------------------------------
+/*
* File error exception thrown in the gdcm library
*/
class GDCM_EXPORT gdcmFileError : public gdcmException {
- public:
- /**
- * Builds an file-related exception with minimal information: name of
- * the thrower method and error message
- *
- * @param from name of the thrower
- * @param error error description string
- */
- explicit gdcmFileError(const string &from,
- const string &error = "File error")
- throw() : gdcmException(from, error) {
- }
+public:
+ /**
+ * \brief Builds an file-related exception with minimal information: name of
+ * the thrower method and error message
+ * @param from name of the thrower
+ * @param error error description string
+ */
+ explicit gdcmFileError(const std::string &from,
+ const std::string &error = "File error")
+ throw() : gdcmException(from, error) {
+ }
};
-
-
-/**
+//-----------------------------------------------------------------------------
+/*
* Invalid file format exception
*/
class GDCM_EXPORT gdcmFormatError : public gdcmException {
- public:
- /**
- * Builds an file-related exception with minimal information: name of
- * the thrower method and error message
- *
- * @param from name of the thrower
- * @param error error description string
- */
- explicit gdcmFormatError(const string &from,
- const string &error = "Invalid file format error")
- throw() : gdcmException(from, error) {
- }
+public:
+ /*
+ * Builds an file-related exception with minimal information: name of
+ * the thrower method and error message
+ *
+ * @param from name of the thrower
+ * @param error error description string
+ */
+ explicit gdcmFormatError(const std::string &from,
+ const std::string &error = "Invalid file format error")
+ throw() : gdcmException(from, error) {
+ }
};
+//-----------------------------------------------------------------------------
+/* prints exception stack on output stream
+ * @param os output stream
+ * @param e exception to print
+ * @returns output stream os
+ */
+std::ostream& operator<<(std::ostream &os, const gdcmException &e);
+//-----------------------------------------------------------------------------
#endif // GDCM_EXCEPTION_H