Missing install file.
[libdcp.git] / src / exceptions.h
index 0dbbec4b5cb62ef25f8d771a0b2499fd4998cf39..4c53a66dd1664c10d1dc1352ac99306f71cbcfdd 100644 (file)
@@ -17,6 +17,9 @@
 
 */
 
+#ifndef LIBDCP_EXCEPTIONS_H
+#define LIBDCP_EXCEPTIONS_H
+
 /** @file  src/exceptions.h
  *  @brief Exceptions thrown by libdcp.
  */
@@ -24,6 +27,7 @@
 namespace libdcp
 {
 
+/** @brief An exception related to a file */
 class FileError : public std::exception
 {
 public:
@@ -34,31 +38,83 @@ public:
                            
        ~FileError () throw () {}
 
+       /** @return error message */
        char const * what () const throw () {
                return _message.c_str ();
        }
        
+       /** @return filename of file that was involved */
        std::string filename () const {
                return _filename;
        }
 
 private:
+       /** error message */
        std::string _message;
+       /** filename of file that was involved */
        std::string _filename;
 };
 
+/** @brief An exception related to an MXF file */
+class MXFFileError : public FileError
+{
+public:
+       MXFFileError (std::string const & message, std::string const & filename)
+               : FileError (message, filename)
+       {}
+};
+       
+/** @brief A miscellaneous exception */
 class MiscError : public std::exception
 {
 public:
        MiscError (std::string const & message) : _message (message) {}
        ~MiscError () throw () {}
 
+       /** @return error message */
        char const * what () const throw () {
                return _message.c_str ();
        }
 
 private:
+       /** error message */
        std::string _message;
 };
 
+/** @brief A DCP read exception */
+class DCPReadError : public std::exception
+{
+public:
+       DCPReadError (std::string const & message) : _message (message) {}
+       ~DCPReadError () throw () {}
+
+       /** @return error message */
+       char const * what () const throw () {
+               return _message.c_str ();
+       }
+
+private:
+       /** error message */
+       std::string _message;
+};
+
+/** @brief An XML error */
+class XMLError : public std::exception
+{
+public:
+       XMLError (std::string const & message) : _message (message) {}
+       ~XMLError () throw () {}
+
+       /** @return error message */
+       char const * what () const throw () {
+               return _message.c_str ();
+       }
+
+private:
+       /** error message */
+       std::string _message;
+};
+       
 }
+
+#endif