| 939 | |
| 940 | template<class ConstBufferSequence> |
| 941 | void |
| 942 | operator()(error_code& ec, |
| 943 | ConstBufferSequence const& buffers) const |
| 944 | { |
| 945 | ec = {}; |
| 946 | if(os_.fail()) |
| 947 | return; |
| 948 | std::size_t bytes_transferred = 0; |
| 949 | for(auto b : beast::buffers_range_ref(buffers)) |
| 950 | { |
| 951 | os_.write(static_cast<char const*>( |
| 952 | b.data()), b.size()); |
| 953 | if(os_.fail()) |
| 954 | return; |
| 955 | bytes_transferred += b.size(); |
| 956 | } |
| 957 | sr_.consume(bytes_transferred); |
| 958 | } |
| 959 | }; |
| 960 | |
| 961 | } // detail |