Salome HOME
Windows compatibility
[modules/smesh.git] / src / SMESHUtils / SMESH_ComputeError.hxx
index 68a86787040d6bc2325150be924db80a7bd1830b..b5e9965bb33585860a2bb7dfc37b6f502f553a29 100644 (file)
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-//  File   : SMESH_Hypothesis.hxx
+//  File   : SMESH_ComputeError.hxx
 //  Author : Edward AGAPOV (eap)
 //  Module : SMESH
 //
 #ifndef SMESH_ComputeError_HeaderFile
 #define SMESH_ComputeError_HeaderFile
 
+#include "SMESH_Utils.hxx"
+
 #include <string>
 #include <list>
 #include <boost/shared_ptr.hpp>
@@ -67,7 +69,7 @@ enum SMESH_ComputeErrorName
  */
 // =============================================================
 
-struct SMESH_ComputeError
+struct SMESHUtils_EXPORT SMESH_ComputeError
 {
   int               myName; //!< SMESH_ComputeErrorName or anything algo specific
   std::string       myComment;
@@ -89,32 +91,15 @@ struct SMESH_ComputeError
   bool IsKO()        const { return myName != COMPERR_OK && myName != COMPERR_WARNING; }
   bool IsCommon()    const { return myName < 0 && myName > COMPERR_LAST_ALGO_ERROR; }
   bool HasBadElems() const { return !myBadElements.empty(); }
-  inline std::string CommonName() const;
 
-};
+  // not inline methods are implemented in   src/SMESHUtils/SMESH_TryCatch.cxx
 
-#define _case2char(err) case err: return #err;
+  // Return myName as text, to be used to dump errors in terminal
+  std::string CommonName() const;
 
-// Return myName as text, to be used to dump errors in terminal
-std::string SMESH_ComputeError::CommonName() const
-{
-  switch( myName ) {
-  _case2char(COMPERR_OK              );
-  _case2char(COMPERR_BAD_INPUT_MESH  );
-  _case2char(COMPERR_STD_EXCEPTION   );
-  _case2char(COMPERR_OCC_EXCEPTION   );
-  _case2char(COMPERR_SLM_EXCEPTION   );
-  _case2char(COMPERR_EXCEPTION       );
-  _case2char(COMPERR_MEMORY_PB       );
-  _case2char(COMPERR_ALGO_FAILED     );
-  _case2char(COMPERR_BAD_SHAPE       );
-  _case2char(COMPERR_WARNING         );
-  _case2char(COMPERR_CANCELED        );
-  _case2char(COMPERR_NO_MESH_ON_SHAPE);
-  _case2char(COMPERR_BAD_PARMETERS   );
-  default:;
-  }
-  return "";
-}
+  // Return the most severe error
+  static SMESH_ComputeErrorPtr Worst( SMESH_ComputeErrorPtr er1,
+                                      SMESH_ComputeErrorPtr er2 );
+};
 
 #endif