Add an explicit exception for J2K decompression failures.
[libdcp.git] / src / exceptions.h
index 770bd916105998e3cf708ec34350ce59edf41da7..b58d02404675bae17e518518a6036538e8f51f6f 100644 (file)
@@ -91,20 +91,21 @@ public:
        {}
 };
 
-/** @class DCPReadError
- *  @brief A DCP read exception
+
+/** @class ReadError
+ *  @brief Any error that occurs when reading data from a DCP.
  */
-class DCPReadError : public std::runtime_error
+class ReadError : public std::runtime_error
 {
 public:
-       explicit DCPReadError (std::string message)
+       explicit ReadError (std::string message)
                : std::runtime_error(message)
                , _message(message)
        {}
 
-       DCPReadError (std::string message, std::string detail);
+       ReadError (std::string message, std::string detail);
 
-       ~DCPReadError() throw () {}
+       ~ReadError() throw () {}
 
        std::string message () const {
                return _message;
@@ -119,7 +120,20 @@ private:
        boost::optional<std::string> _detail;
 };
 
-class BadContentKindError : public DCPReadError
+
+/** @class J2KDecompressionError
+ *  @brief An error that occurs during decompression of JPEG2000 data.
+ */
+class J2KDecompressionError : public ReadError
+{
+public:
+       explicit J2KDecompressionError (std::string message)
+               : ReadError (message)
+       {}
+};
+
+
+class BadContentKindError : public ReadError
 {
 public:
        BadContentKindError (std::string content_kind);