/
usr
/
include
/
boost
/
beast
/
core
/
detail
/
/usr/include/boost/beast/core/detail
mkdir
upload
Name
Size
Mode
Actions
impl/
-
0755
rm
allocator.hpp
945
0644
edit
dl
rm
async_base.hpp
901
0644
edit
dl
rm
base64.hpp
1942
0644
edit
dl
rm
base64.ipp
6170
0644
edit
dl
rm
bind_continuation.hpp
3504
0644
edit
dl
rm
bind_default_executor.hpp
3243
0644
edit
dl
rm
bind_handler.hpp
10959
0644
edit
dl
rm
buffer.hpp
1825
0644
edit
dl
rm
buffers_pair.hpp
2636
0644
edit
dl
rm
buffers_range_adaptor.hpp
2651
0644
edit
dl
rm
buffers_ref.hpp
1648
0644
edit
dl
rm
buffer_traits.hpp
2095
0644
edit
dl
rm
chacha.hpp
4167
0644
edit
dl
rm
char_buffer.hpp
1407
0644
edit
dl
rm
clamp.hpp
1229
0644
edit
dl
rm
config.hpp
2884
0644
edit
dl
rm
cpu_info.hpp
1787
0644
edit
dl
rm
flat_stream.hpp
1919
0644
edit
dl
rm
get_io_context.hpp
2338
0644
edit
dl
rm
is_invocable.hpp
1888
0644
edit
dl
rm
ostream.hpp
7004
0644
edit
dl
rm
pcg.hpp
1464
0644
edit
dl
rm
read.hpp
9217
0644
edit
dl
rm
remap_post_to_defer.hpp
2152
0644
edit
dl
rm
service_base.hpp
850
0644
edit
dl
rm
sha1.hpp
1624
0644
edit
dl
rm
sha1.ipp
7998
0644
edit
dl
rm
static_const.hpp
1154
0644
edit
dl
rm
static_ostream.hpp
3030
0644
edit
dl
rm
static_string.hpp
3030
0644
edit
dl
rm
stream_base.hpp
2685
0644
edit
dl
rm
stream_traits.hpp
2796
0644
edit
dl
rm
string.hpp
898
0644
edit
dl
rm
temporary_buffer.hpp
1611
0644
edit
dl
rm
tuple.hpp
2194
0644
edit
dl
rm
type_traits.hpp
2779
0644
edit
dl
rm
variant.hpp
4889
0644
edit
dl
rm
varint.hpp
1712
0644
edit
dl
rm
win32_unicode_path.hpp
2148
0644
edit
dl
rm
work_guard.hpp
1851
0644
edit
dl
rm
Edit:
/usr/include/boost/beast/core/detail/static_ostream.hpp
(3030B)
// // Copyright (c) 2016-2019 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) // // Official repository: https://github.com/boostorg/beast // #ifndef BOOST_BEAST_DETAIL_STATIC_OSTREAM_HPP #define BOOST_BEAST_DETAIL_STATIC_OSTREAM_HPP #include <locale> #include <ostream> #include <streambuf> namespace boost { namespace beast { namespace detail { // http://www.mr-edd.co.uk/blog/beginners_guide_streambuf class static_ostream_buffer : public std::basic_streambuf<char> { using CharT = char; using Traits = std::char_traits<CharT>; using int_type = typename std::basic_streambuf<CharT, Traits>::int_type; using traits_type = typename std::basic_streambuf<CharT, Traits>::traits_type; char* data_; std::size_t size_; std::size_t len_ = 0; std::string s_; public: static_ostream_buffer(static_ostream_buffer&&) = delete; static_ostream_buffer(static_ostream_buffer const&) = delete; static_ostream_buffer(char* data, std::size_t size) : data_(data) , size_(size) { this->setp(data_, data_ + size - 1); } ~static_ostream_buffer() noexcept { } string_view str() const { if(! s_.empty()) return {s_.data(), len_}; return {data_, len_}; } int_type overflow(int_type ch) override { if(! Traits::eq_int_type(ch, Traits::eof())) { Traits::assign(*this->pptr(), static_cast<CharT>(ch)); flush(1); prepare(); return ch; } flush(); return traits_type::eof(); } int sync() override { flush(); prepare(); return 0; } private: void prepare() { static auto const growth_factor = 1.5; if(len_ < size_ - 1) { this->setp( data_ + len_, data_ + size_ - 2); return; } if(s_.empty()) { s_.resize(static_cast<std::size_t>( growth_factor * len_)); Traits::copy(&s_[0], data_, len_); } else { s_.resize(static_cast<std::size_t>( growth_factor * len_)); } this->setp(&s_[len_], &s_[len_] + s_.size() - len_ - 1); } void flush(int extra = 0) { len_ += static_cast<std::size_t>( this->pptr() - this->pbase() + extra); } }; class static_ostream : public std::basic_ostream<char> { static_ostream_buffer osb_; public: static_ostream(char* data, std::size_t size) : std::basic_ostream<char>(&this->osb_) , osb_(data, size) { imbue(std::locale::classic()); } string_view str() const { return osb_.str(); } }; } // detail } // beast } // boost #endif
Save
cmd:
run