X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fexceptions.h;h=90a0abfc717d46cfa697b92fef0dccba62795620;hb=f90d74f7a0382f0dc63eef81bd553d7a7b38edb2;hp=38452ffc02b7c0867596cb55787a77c29eeafc01;hpb=8102046b2f29e0c7b234c29bf204b056cb30e64f;p=dcpomatic.git diff --git a/src/lib/exceptions.h b/src/lib/exceptions.h index 38452ffc0..90a0abfc7 100644 --- a/src/lib/exceptions.h +++ b/src/lib/exceptions.h @@ -245,10 +245,24 @@ public: SubRipError (std::string, std::string, boost::filesystem::path); }; +class DCPError : public StringError +{ +public: + DCPError (std::string s) + : StringError (s) + {} +}; + +class InvalidSignerError : public StringError +{ +public: + InvalidSignerError (); +}; + /** @class ExceptionStore * @brief A parent class for classes which have a need to catch and * re-throw exceptions. - + * * This is intended for classes which run their own thread; they should do * something like * @@ -270,8 +284,9 @@ public: void rethrow () { boost::mutex::scoped_lock lm (_mutex); if (_exception) { - boost::rethrow_exception (_exception); + boost::exception_ptr tmp = _exception; _exception = boost::exception_ptr (); + boost::rethrow_exception (tmp); } } @@ -287,6 +302,4 @@ private: mutable boost::mutex _mutex; }; - - #endif