76 lines
2.1 KiB
C++
76 lines
2.1 KiB
C++
//
|
|
// 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 <boost/locale/definitions.hpp>
|
|
#ifdef BOOST_MSVC
|
|
# pragma warning(push)
|
|
# pragma warning(disable : 4275 4251 4231 4660)
|
|
#endif
|
|
#include <stdexcept>
|
|
|
|
|
|
|
|
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
|
|
|