mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
6d5547a Set version to 1.0.0-b34 6fab138 Fix and tidy up CMake build scripts: ccefa54 Set version to 1.0.0-b33 32afe41 Set internal state correctly when writing frames: fe3e20b Add write_frames unit test 578dcd0 Add decorator unit test aaa3733 Use fwrite return value in file_body df66165 Require Visual Studio 2015 Update 3 or later b8e5a21 Set version to 1.0.0-b32 ffb1758 Update CMake scripts for finding packages: b893749 Remove http Writer suspend and resume feature (API Change): 27864fb Add io_service completion invariants tests eba05a7 Set version to 1.0.0-b31 484bcef Fix badge markdown in README.md 5663bea Add missing dynabuf_readstream member 0d7a551 Tidy up build settings 0fd4030 Move the handler, don't copy it git-subtree-dir: src/beast git-subtree-split: 6d5547a32c50ec95832c4779311502555ab0ee1f
138 lines
4.0 KiB
C++
138 lines
4.0 KiB
C++
//
|
|
// Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
|
|
//
|
|
// 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)
|
|
//
|
|
// This is a derivative work based on Zlib, copyright below:
|
|
/*
|
|
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
|
|
|
|
This software is provided 'as-is', without any express or implied
|
|
warranty. In no event will the authors be held liable for any damages
|
|
arising from the use of this software.
|
|
|
|
Permission is granted to anyone to use this software for any purpose,
|
|
including commercial applications, and to alter it and redistribute it
|
|
freely, subject to the following restrictions:
|
|
|
|
1. The origin of this software must not be misrepresented; you must not
|
|
claim that you wrote the original software. If you use this software
|
|
in a product, an acknowledgment in the product documentation would be
|
|
appreciated but is not required.
|
|
2. Altered source versions must be plainly marked as such, and must not be
|
|
misrepresented as being the original software.
|
|
3. This notice may not be removed or altered from any source distribution.
|
|
|
|
Jean-loup Gailly Mark Adler
|
|
jloup@gzip.org madler@alumni.caltech.edu
|
|
|
|
The data format used by the zlib library is described by RFCs (Request for
|
|
Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950
|
|
(zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).
|
|
*/
|
|
|
|
#ifndef BEAST_ZLIB_IMPL_ERROR_IPP
|
|
#define BEAST_ZLIB_IMPL_ERROR_IPP
|
|
|
|
#include <beast/core/error.hpp>
|
|
#include <type_traits>
|
|
|
|
namespace boost {
|
|
namespace system {
|
|
template<>
|
|
struct is_error_code_enum<beast::zlib::error>
|
|
{
|
|
static bool const value = true;
|
|
};
|
|
} // system
|
|
} // boost
|
|
|
|
namespace beast {
|
|
namespace zlib {
|
|
namespace detail {
|
|
|
|
class zlib_error_category : public error_category
|
|
{
|
|
public:
|
|
const char*
|
|
name() const noexcept override
|
|
{
|
|
return "zlib";
|
|
}
|
|
|
|
std::string
|
|
message(int ev) const override
|
|
{
|
|
switch(static_cast<error>(ev))
|
|
{
|
|
case error::need_buffers: return "need buffers";
|
|
case error::end_of_stream: return "end of stream";
|
|
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_lenths: 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 "zlib error";
|
|
}
|
|
}
|
|
|
|
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;
|
|
}
|
|
};
|
|
|
|
inline
|
|
error_category const&
|
|
get_error_category()
|
|
{
|
|
static zlib_error_category const cat{};
|
|
return cat;
|
|
}
|
|
|
|
} // detail
|
|
|
|
inline
|
|
error_code
|
|
make_error_code(error ev)
|
|
{
|
|
return error_code{
|
|
static_cast<std::underlying_type<error>::type>(ev),
|
|
detail::get_error_category()};
|
|
}
|
|
|
|
} // zlib
|
|
} // beast
|
|
|
|
#endif
|