Salome HOME
crash fix: mirror (line, axis of sketch), select with rectangle, delete
[modules/shaper.git] / src / Events / Events_Error.h
index d3222a28e1ffb5566d4d1a72761c86b283ba3108..b344c6e36f9a3319939a1d351e4247158a9d9d27 100644 (file)
 
 #include <string>
 
-class EVENTS_EXPORT Events_Error : public Events_Message
+/**\class Events_Error
+ * \ingroup EventsLoop
+ * \brief An error message event.
+ *
+ * Is generated by any algorithm or GUI of the application to inform the user about
+ * the problem. In GUI mode all such errors are collected in the message log window.
+ */
+class Events_Error : public Events_Message
 {
-  char* myDescription;  ///< pointer to the description of the error
-
- public:
-  virtual ~Events_Error();
-
-  static Events_ID errorID();
-  char* description() const;
-  static void send(char* theDescription, const void* theSender = 0);
-  static void send(std::string theDescription, const void* theSender = 0);
-
- protected:
-  Events_Error(char* theDescription, const void* theSender = 0);
+  std::string myDescription;  ///< the description of the error
+
+public:
+  /// default destructor   
+  EVENTS_EXPORT virtual ~Events_Error();
+
+  /// Identifier of this event (one for all errors)
+  EVENTS_EXPORT static Events_ID errorID();
+  /// Specific error string
+  EVENTS_EXPORT const char* description() const;
+  /// Allows to send an error quickly: it creates and sends the error object automatically
+  EVENTS_EXPORT static void send(const std::string& theDescription, const void* theSender = 0);
+
+  /// Throws a C++ exception about using an empty AIS object
+  /// \theDescription an exception information
+  EVENTS_EXPORT static void throwException(const std::string& theDescription);
+
+protected:
+  /// Default constructor. Use "send" message for generation an error.
+  EVENTS_EXPORT Events_Error(const std::string& theDescription, const void* theSender = 0);
 };
 
 #endif /* EVENTS_ERROR_H_ */