Chris@130: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@130: Chris@130: /* Chris@130: Sonic Visualiser Chris@130: An audio file viewer and annotation editor. Chris@130: Centre for Digital Music, Queen Mary, University of London. Chris@130: This file copyright 2006 Chris Cannam. Chris@130: Chris@130: This program is free software; you can redistribute it and/or Chris@130: modify it under the terms of the GNU General Public License as Chris@130: published by the Free Software Foundation; either version 2 of the Chris@130: License, or (at your option) any later version. See the file Chris@130: COPYING included with this distribution for more information. Chris@130: */ Chris@130: Chris@1580: #ifndef SV_EXCEPTIONS_H Chris@1580: #define SV_EXCEPTIONS_H Chris@130: Chris@130: #include Chris@130: Chris@130: #include Chris@130: Chris@686: #include "Debug.h" Chris@686: Chris@130: class FileNotFound : virtual public std::exception Chris@130: { Chris@130: public: Chris@130: FileNotFound(QString file) throw(); Chris@130: virtual ~FileNotFound() throw() { } Chris@1580: const char *what() const throw() override; Chris@130: Chris@130: protected: Chris@130: QString m_file; Chris@130: }; Chris@130: Chris@130: class FailedToOpenFile : virtual public std::exception Chris@130: { Chris@130: public: Chris@130: FailedToOpenFile(QString file) throw(); Chris@130: virtual ~FailedToOpenFile() throw() { } Chris@1580: const char *what() const throw() override; Chris@130: Chris@130: protected: Chris@130: QString m_file; Chris@130: }; Chris@130: Chris@130: class DirectoryCreationFailed : virtual public std::exception Chris@130: { Chris@130: public: Chris@130: DirectoryCreationFailed(QString directory) throw(); Chris@130: virtual ~DirectoryCreationFailed() throw() { } Chris@1580: const char *what() const throw() override; Chris@130: Chris@130: protected: Chris@130: QString m_directory; Chris@130: }; Chris@130: Chris@130: class FileReadFailed : virtual public std::exception Chris@130: { Chris@130: public: Chris@130: FileReadFailed(QString file) throw(); Chris@130: virtual ~FileReadFailed() throw() { } Chris@1580: const char *what() const throw() override; Chris@130: Chris@130: protected: Chris@130: QString m_file; Chris@130: }; Chris@130: Chris@130: class FileOperationFailed : virtual public std::exception Chris@130: { Chris@130: public: Chris@130: FileOperationFailed(QString file, QString operation) throw(); Chris@130: virtual ~FileOperationFailed() throw() { } Chris@1580: const char *what() const throw() override; Chris@130: Chris@130: protected: Chris@130: QString m_file; Chris@130: QString m_operation; Chris@130: }; Chris@130: Chris@130: class InsufficientDiscSpace : virtual public std::exception Chris@130: { Chris@130: public: Chris@130: InsufficientDiscSpace(QString directory, Chris@1038: size_t required, size_t available) throw(); Chris@544: InsufficientDiscSpace(QString directory) throw(); Chris@130: virtual ~InsufficientDiscSpace() throw() { } Chris@1580: const char *what() const throw() override; Chris@130: Chris@544: QString getDirectory() const { return m_directory; } Chris@1038: size_t getRequired() const { return m_required; } Chris@1038: size_t getAvailable() const { return m_available; } Chris@130: Chris@130: protected: Chris@130: QString m_directory; Chris@1038: size_t m_required; Chris@1038: size_t m_available; Chris@130: }; Chris@130: Chris@387: class AllocationFailed : virtual public std::exception Chris@387: { Chris@387: public: Chris@387: AllocationFailed(QString purpose) throw(); Chris@387: virtual ~AllocationFailed() throw() { } Chris@1580: const char *what() const throw() override; Chris@387: Chris@387: protected: Chris@387: QString m_purpose; Chris@387: }; Chris@387: Chris@130: #endif