| #ifndef BOOST_ARCHIVE_ITERATORS_DATAFLOW_EXCEPTION_HPP |
| #define BOOST_ARCHIVE_ITERATORS_DATAFLOW_EXCEPTION_HPP |
| |
| // MS compatible compilers support #pragma once |
| #if defined(_MSC_VER) && (_MSC_VER >= 1020) |
| # pragma once |
| #endif |
| |
| /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 |
| // dataflow_exception.hpp: |
| |
| // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . |
| // Use, modification and distribution is subject to 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) |
| |
| // See http://www.boost.org for updates, documentation, and revision history. |
| |
| #include <boost/config.hpp> |
| #ifndef BOOST_NO_EXCEPTIONS |
| #include <exception> |
| #endif //BOOST_NO_EXCEPTIONS |
| |
| #include <cassert> |
| |
| namespace boost { |
| namespace archive { |
| namespace iterators { |
| |
| ////////////////////////////////////////////////////////////////////// |
| // exceptions thrown by dataflows |
| // |
| class dataflow_exception : public std::exception |
| { |
| public: |
| typedef enum { |
| invalid_6_bitcode, |
| invalid_base64_character, |
| invalid_xml_escape_sequence, |
| comparison_not_permitted, |
| invalid_conversion, |
| other_exception |
| } exception_code; |
| exception_code code; |
| |
| dataflow_exception(exception_code c = other_exception) : code(c) |
| {} |
| |
| virtual const char *what( ) const throw( ) |
| { |
| const char *msg = "unknown exception code"; |
| switch(code){ |
| case invalid_6_bitcode: |
| msg = "attempt to encode a value > 6 bits"; |
| break; |
| case invalid_base64_character: |
| msg = "attempt to decode a value not in base64 char set"; |
| break; |
| case invalid_xml_escape_sequence: |
| msg = "invalid xml escape_sequence"; |
| break; |
| case comparison_not_permitted: |
| msg = "cannot invoke iterator comparison now"; |
| break; |
| case invalid_conversion: |
| msg = "invalid multbyte/wide char conversion"; |
| break; |
| default: |
| assert(false); |
| break; |
| } |
| return msg; |
| } |
| }; |
| |
| } // namespace iterators |
| } // namespace archive |
| } // namespace boost |
| |
| #endif //BOOST_ARCHIVE_ITERATORS_DATAFLOW_EXCEPTION_HPP |