// // Copyright (c) 2009-2011 Artyom Beilis (Tonkikh) // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_LOCALE_ENCODING_ERRORS_HPP_INCLUDED #define BOOST_LOCALE_ENCODING_ERRORS_HPP_INCLUDED #include #ifdef BOOST_MSVC # pragma warning(push) # pragma warning(disable : 4275 4251 4231 4660) #endif #include #include namespace boost { namespace locale { namespace conv { /// /// \addtogroup codepage /// /// @{ /// /// \brief The excepton that is thrown in case of conversion error /// class BOOST_SYMBOL_VISIBLE conversion_error : public std::runtime_error { public: conversion_error() : std::runtime_error("Conversion failed") {} }; /// /// \brief This exception is thrown in case of use of unsupported /// or invalid character set /// class BOOST_SYMBOL_VISIBLE invalid_charset_error : public std::runtime_error { public: /// Create an error for charset \a charset invalid_charset_error(std::string charset) : std::runtime_error("Invalid or unsupported charset:" + charset) { } }; /// /// enum that defines conversion policy /// typedef enum { skip = 0, ///< Skip illegal/unconvertable characters stop = 1, ///< Stop conversion and throw conversion_error default_method = skip ///< Default method - skip } method_type; /// @} } // conv } // locale } // boost #ifdef BOOST_MSVC #pragma warning(pop) #endif #endif // vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4