X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fexceptions.h;h=3e7289a50e13e00c4c04259ff7c63bb65ba5bdce;hb=6fde557864505b470c438e4161ee494f29b90d63;hp=7240611ee7757b3acc760ed0acb9f4e2d571e794;hpb=1ad291db7e847fbb71e5bd9f2f81db6bfb2a022e;p=dcpomatic.git diff --git a/src/lib/exceptions.h b/src/lib/exceptions.h index 7240611ee..3e7289a50 100644 --- a/src/lib/exceptions.h +++ b/src/lib/exceptions.h @@ -31,63 +31,40 @@ extern "C" { #include #include -/** @class StringError - * @brief A parent class for exceptions using messages held in a std::string - */ -class StringError : public std::exception -{ -public: - /** @param w Error message */ - StringError (std::string w) - : _what (w) - {} - - virtual ~StringError () throw () {} - - /** @return error message */ - char const * what () const throw () { - return _what.c_str (); - } - -protected: - /** error message */ - std::string _what; -}; - /** @class DecodeError * @brief A low-level problem with the decoder (possibly due to the nature * of a source file). */ -class DecodeError : public StringError +class DecodeError : public std::runtime_error { public: DecodeError (std::string s) - : StringError (s) + : std::runtime_error (s) {} }; /** @class EncodeError * @brief A low-level problem with an encoder. */ -class EncodeError : public StringError +class EncodeError : public std::runtime_error { public: EncodeError (std::string s) - : StringError (s) + : std::runtime_error (s) {} }; /** @class FileError. * @brief Parent class for file-related errors. */ -class FileError : public StringError +class FileError : public std::runtime_error { public: /** @param m Error message. * @param f Name of the file that this exception concerns. */ FileError (std::string m, boost::filesystem::path f) - : StringError (m) + : std::runtime_error (m) , _file (f) {} @@ -103,11 +80,11 @@ private: boost::filesystem::path _file; }; -class JoinError : public StringError +class JoinError : public std::runtime_error { public: JoinError (std::string s) - : StringError (s) + : std::runtime_error (s) {} }; @@ -159,14 +136,14 @@ public: /** @class SettingError. * @brief Indicates that something is wrong with a setting. */ -class SettingError : public StringError +class SettingError : public std::runtime_error { public: /** @param s Name of setting that was required. * @param m Message. */ SettingError (std::string s, std::string m) - : StringError (m) + : std::runtime_error (m) , _setting (s) {} @@ -206,61 +183,69 @@ public: /** @class NetworkError * @brief Indicates some problem with communication on the network. */ -class NetworkError : public StringError +class NetworkError : public std::runtime_error { public: NetworkError (std::string s) - : StringError (s) + : std::runtime_error (s) {} }; /** @class KDMError * @brief A problem with a KDM. */ -class KDMError : public StringError +class KDMError : public std::runtime_error { public: KDMError (std::string s) - : StringError (s) + : std::runtime_error (s) {} }; /** @class PixelFormatError * @brief A problem with an unsupported pixel format. */ -class PixelFormatError : public StringError +class PixelFormatError : public std::runtime_error { public: PixelFormatError (std::string o, AVPixelFormat f); }; -/** @class SubRipError - * @brief An error that occurs while parsing a SubRip file. +/** @class TextSubtitleError + * @brief An error that occurs while parsing a TextSubtitleError file. */ -class SubRipError : public FileError +class TextSubtitleError : public FileError { public: - SubRipError (std::string, std::string, boost::filesystem::path); + TextSubtitleError (std::string, std::string, boost::filesystem::path); }; -class DCPError : public StringError +class DCPError : public std::runtime_error { public: DCPError (std::string s) - : StringError (s) + : std::runtime_error (s) {} }; -class InvalidSignerError : public StringError +class InvalidSignerError : public std::runtime_error { public: InvalidSignerError (); }; -class ProgrammingError : public StringError +class ProgrammingError : public std::runtime_error { public: ProgrammingError (std::string file, int line); }; +class TextEncodingError : public std::runtime_error +{ +public: + TextEncodingError (std::string s) + : std::runtime_error (s) + {} +}; + #endif