123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #ifndef BOOST_BEAST_ZLIB_IMPL_ERROR_IPP
- #define BOOST_BEAST_ZLIB_IMPL_ERROR_IPP
- #include <boost/beast/zlib/error.hpp>
- #include <type_traits>
- namespace boost {
- namespace beast {
- namespace zlib {
- namespace detail {
- class error_codes : public error_category
- {
- public:
- const char*
- name() const noexcept override
- {
- return "boost.beast.zlib";
- }
- BOOST_BEAST_DECL
- char const*
- message(int ev, char*, std::size_t) const noexcept override
- {
- switch(static_cast<error>(ev))
- {
- case error::need_buffers: return "need buffers";
- case error::end_of_stream: return "unexpected end of deflate stream";
- case error::need_dict: return "need dict";
- case error::stream_error: return "stream error";
- case error::invalid_block_type: return "invalid block type";
- case error::invalid_stored_length: return "invalid stored block length";
- case error::too_many_symbols: return "too many symbols";
- case error::invalid_code_lengths: return "invalid code lengths";
- case error::invalid_bit_length_repeat: return "invalid bit length repeat";
- case error::missing_eob: return "missing end of block code";
- case error::invalid_literal_length: return "invalid literal/length code";
- case error::invalid_distance_code: return "invalid distance code";
- case error::invalid_distance: return "invalid distance";
- case error::over_subscribed_length: return "over-subscribed length";
- case error::incomplete_length_set: return "incomplete length set";
- case error::general:
- default:
- return "beast.zlib error";
- }
- }
- std::string
- message(int ev) const override
- {
- return message(ev, nullptr, 0);
- }
- error_condition
- default_error_condition(int ev) const noexcept override
- {
- return error_condition{ev, *this};
- }
- bool
- equivalent(int ev,
- error_condition const& condition
- ) const noexcept override
- {
- return condition.value() == ev &&
- &condition.category() == this;
- }
- bool
- equivalent(error_code const& error, int ev) const noexcept override
- {
- return error.value() == ev &&
- &error.category() == this;
- }
- };
- }
- error_code
- make_error_code(error ev)
- {
- static detail::error_codes const cat{};
- return error_code{static_cast<
- std::underlying_type<error>::type>(ev), cat};
- }
- }
- }
- }
- #endif
|