- void rethrow () {
- boost::mutex::scoped_lock lm (_mutex);
- if (_exception) {
- boost::exception_ptr tmp = _exception;
- _exception = boost::exception_ptr ();
- boost::rethrow_exception (tmp);
- }
+ TextSubtitleError (std::string, std::string, boost::filesystem::path);
+};
+
+class DCPError : public std::runtime_error
+{
+public:
+ explicit DCPError (std::string s)
+ : std::runtime_error (s)
+ {}
+};
+
+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, std::string message = "");
+};
+
+class TextEncodingError : public std::runtime_error
+{
+public:
+ 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);
+};
+
+/** @class CopyError
+ * @brief An error which occurs when copying a DCP to a distribution drive.
+ */
+class CopyError : public std::runtime_error
+{
+public:
+ CopyError (std::string s, int n);
+ virtual ~CopyError () throw () {}
+
+ std::string message () const {
+ return _message;