+ CPLNotFoundError(std::string id)
+ : DCPError(String::compose("CPL %1 not found", id))
+ {}
+};
+
+
+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);
+ GLError (char const* message);
+};
+
+
+/** @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, boost::optional<int> ext4_error = boost::optional<int>(), boost::optional<int> platform_error = boost::optional<int>());
+ virtual ~CopyError () throw () {}
+
+ std::string message () const {
+ return _message;
+ }
+
+ boost::optional<int> ext4_number() const {
+ return _ext4_number;
+ }
+
+ boost::optional<int> platform_number() const {
+ return _platform_number;