More header guards.
[libsub.git] / src / exceptions.h
index f2f1246c47a56864dd30c0b64283ab1f91b2775d..a0ca1b93b073b64f1f00bf30370ee96cfb807124 100644 (file)
 
 */
 
+#ifndef LIBSUB_EXCEPTIONS_H
+#define LIBSUB_EXCEPTIONS_H
+
 #include <stdexcept>
 #include <string>
 
 namespace sub {
 
-/** @class XMLError
- *  @brief An error raised when reading an XML file.
- */
-class XMLError : public std::exception
+class MessageError : public std::exception
 {
 public:
-       XMLError (std::string const & message) : _message (message) {}
-       ~XMLError () throw () {}
+       MessageError (std::string const & message)
+               : _message (message) {}
+       ~MessageError () throw () {}
 
        /** @return error message */
        char const * what () const throw () {
@@ -41,23 +42,39 @@ private:
        std::string _message;
 };
 
+/** @class XMLError
+ *  @brief An error raised when reading an XML file.
+ */
+class XMLError : public MessageError
+{
+public:
+       XMLError (std::string const & message)
+               : MessageError (message)
+       {}
+};
+
 /** @class STLError
  *  @brief An error raised when reading a binary STL file.
  */
-class STLError : public std::exception
+class STLError : public MessageError
 {
 public:
-       STLError (std::string const & message) : _message (message) {}
-       ~STLError () throw () {}
-
-       /** @return error message */
-       char const * what () const throw () {
-               return _message.c_str ();
-       }
+       STLError (std::string const & message)
+               : MessageError (message)
+       {}
+};
 
-private:
-       /** error message */
-       std::string _message;
+/** @class SubripError
+ *  @brief An error raised when reading a Subrip file.
+ */
+class SubripError : public MessageError
+{
+public:
+       SubripError (std::string saw, std::string expecting)
+               : MessageError ("Error in SubRip file: saw " + saw + " while expecting " + expecting)
+       {}
 };
 
 }
+
+#endif