76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.0 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
 | 
						|
 |