X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fexceptions.h;h=ddd1e36035f9dfb6a5e71827a2b47f8c978da3f0;hb=fea83d9ef5d02149f857a11de79ed266773fd5a1;hp=1a32b5402194ba7357dfa385764c2b4b10d71b48;hpb=513947df0f421c086ac56dff48dfe540b0a380c2;p=dcpomatic.git diff --git a/src/lib/exceptions.h b/src/lib/exceptions.h index 1a32b5402..ddd1e3603 100644 --- a/src/lib/exceptions.h +++ b/src/lib/exceptions.h @@ -39,7 +39,15 @@ extern "C" { class DecodeError : public std::runtime_error { public: - DecodeError (std::string s) + explicit DecodeError (std::string s) + : std::runtime_error (s) + {} +}; + +class CryptoError : public std::runtime_error +{ +public: + explicit CryptoError (std::string s) : std::runtime_error (s) {} }; @@ -50,7 +58,7 @@ public: class EncodeError : public std::runtime_error { public: - EncodeError (std::string s) + explicit EncodeError (std::string s) : std::runtime_error (s) {} }; @@ -84,7 +92,7 @@ private: class JoinError : public std::runtime_error { public: - JoinError (std::string s) + explicit JoinError (std::string s) : std::runtime_error (s) {} }; @@ -95,8 +103,17 @@ public: class OpenFileError : public FileError { public: - /** @param f File that we were trying to open */ - OpenFileError (boost::filesystem::path f, int error); + enum Mode { + READ, + WRITE, + READ_WRITE + }; + + /** @param f File that we were trying to open. + * @param error Code of error that occurred. + * @param mode Mode that we tried to open the file in. + */ + OpenFileError (boost::filesystem::path f, int error, Mode mode); }; /** @class ReadFileError. @@ -155,7 +172,7 @@ class MissingSettingError : public SettingError { public: /** @param s Name of setting that was required */ - MissingSettingError (std::string s); + explicit MissingSettingError (std::string s); }; /** @class BadSettingError @@ -164,7 +181,9 @@ public: class BadSettingError : public SettingError { public: - /** @param s Name of setting that is bad */ + /** @param s Name of setting that is bad. + * @param m Error message. + */ BadSettingError (std::string s, std::string m) : SettingError (s, m) {} @@ -176,7 +195,7 @@ public: class NetworkError : public std::runtime_error { public: - NetworkError (std::string s) + explicit NetworkError (std::string s) : std::runtime_error (s) {} }; @@ -187,9 +206,20 @@ public: class KDMError : public std::runtime_error { public: - KDMError (std::string s) - : std::runtime_error (s) - {} + KDMError (std::string s, std::string d); + ~KDMError () throw() {} + + std::string summary () const { + return _summary; + } + + std::string detail () const { + return _detail; + } + +private: + std::string _summary; + std::string _detail; }; /** @class PixelFormatError @@ -213,7 +243,7 @@ public: class DCPError : public std::runtime_error { public: - DCPError (std::string s) + explicit DCPError (std::string s) : std::runtime_error (s) {} }; @@ -222,20 +252,50 @@ class InvalidSignerError : public std::runtime_error { public: InvalidSignerError (); + explicit InvalidSignerError (std::string reason); }; class ProgrammingError : public std::runtime_error { public: - ProgrammingError (std::string file, int line); + ProgrammingError (std::string file, int line, std::string message = ""); }; class TextEncodingError : public std::runtime_error { public: - TextEncodingError (std::string s) + explicit TextEncodingError (std::string s) : std::runtime_error (s) {} }; +class MetadataError : public std::runtime_error +{ +public: + explicit MetadataError (std::string s) + : std::runtime_error (s) + {} +}; + +class OldFormatError : public std::runtime_error +{ +public: + explicit OldFormatError (std::string s) + : std::runtime_error (s) + {} +}; + +class KDMAsContentError : public std::runtime_error +{ +public: + KDMAsContentError (); +}; + +class GLError : public std::runtime_error +{ +public: + GLError (char const * last, int e); +}; + + #endif