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