X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fexceptions.h;h=ddd1e36035f9dfb6a5e71827a2b47f8c978da3f0;hb=3f9b394d57e750624d361f5daae6db77079f862a;hp=5efb045b74906cdbb77e782d61023ba709c6c77d;hpb=c6871fe8617b3de03662b7630355059393bf8043;p=dcpomatic.git diff --git a/src/lib/exceptions.h b/src/lib/exceptions.h index 5efb045b7..ddd1e3603 100644 --- a/src/lib/exceptions.h +++ b/src/lib/exceptions.h @@ -44,6 +44,14 @@ public: {} }; +class CryptoError : public std::runtime_error +{ +public: + explicit CryptoError (std::string s) + : std::runtime_error (s) + {} +}; + /** @class EncodeError * @brief A low-level problem with an encoder. */ @@ -95,11 +103,17 @@ public: class OpenFileError : public FileError { public: + enum Mode { + READ, + WRITE, + READ_WRITE + }; + /** @param f File that we were trying to open. * @param error Code of error that occurred. - * @param reading true if we were opening to read, false if opening to write. + * @param mode Mode that we tried to open the file in. */ - OpenFileError (boost::filesystem::path f, int error, bool reading); + OpenFileError (boost::filesystem::path f, int error, Mode mode); }; /** @class ReadFileError. @@ -192,9 +206,20 @@ public: class KDMError : public std::runtime_error { public: - explicit 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 @@ -244,6 +269,14 @@ public: {} }; +class MetadataError : public std::runtime_error +{ +public: + explicit MetadataError (std::string s) + : std::runtime_error (s) + {} +}; + class OldFormatError : public std::runtime_error { public: @@ -258,4 +291,11 @@ public: KDMAsContentError (); }; +class GLError : public std::runtime_error +{ +public: + GLError (char const * last, int e); +}; + + #endif