| // Header for error type |
| |
| /* |
| |
| This file is part of VIPS. |
| |
| VIPS is free software; you can redistribute it and/or modify |
| it under the terms of the GNU Lesser General Public License as published by |
| the Free Software Foundation; either version 2 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU Lesser General Public License for more details. |
| |
| You should have received a copy of the GNU Lesser General Public License |
| along with this program; if not, write to the Free Software |
| Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| |
| */ |
| |
| /* |
| |
| These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk |
| |
| */ |
| |
| #ifndef IM_VERROR_H |
| #define IM_VERROR_H |
| |
| /* SWIG includes this file directly rather than going through vipscpp.h ... so |
| * we have to define these macros here as well. |
| */ |
| #ifdef SWIG |
| #define VIPS_NAMESPACE_START namespace vips { |
| #define VIPS_NAMESPACE_END } |
| #endif /*SWIG*/ |
| |
| /* Don't include these when parsing for SWIG. |
| */ |
| #ifndef SWIG |
| # include <string> |
| # include <iosfwd> |
| # include <exception> |
| #endif /*!SWIG*/ |
| |
| VIPS_NAMESPACE_START |
| |
| // Error type |
| class VError : public std::exception { |
| std::string _what; |
| |
| public: |
| VError( std::string what ) : _what( what ) {} |
| VError() {} |
| virtual ~VError() noexcept {} |
| |
| // Print message and exit |
| void perror( const char * ); |
| void perror(); |
| |
| // Append some more text to the message |
| VError &app( std::string txt ); |
| VError &app( const int i ); |
| |
| // Extract string |
| virtual const char *what() const noexcept { return _what.c_str(); } |
| void ostream_print( std::ostream & ) const; |
| }; |
| |
| inline std::ostream &operator<<( std::ostream &file, const VError &err ) |
| { |
| err.ostream_print( file ); |
| return( file ); |
| } |
| |
| void verror( std::string str = "" ); |
| |
| VIPS_NAMESPACE_END |
| |
| #endif /*IM_VERROR_H*/ |