| 469 | template <typename Stream> |
| 470 | template <typename ConstBufferSequence> |
| 471 | std::size_t buffered_write_stream<Stream>::copy( |
| 472 | const ConstBufferSequence& buffers) |
| 473 | { |
| 474 | using asio::buffer_size; |
| 475 | std::size_t orig_size = storage_.size(); |
| 476 | std::size_t space_avail = storage_.capacity() - orig_size; |
| 477 | std::size_t bytes_avail = buffer_size(buffers); |
| 478 | std::size_t length = bytes_avail < space_avail ? bytes_avail : space_avail; |
| 479 | storage_.resize(orig_size + length); |
| 480 | return asio::buffer_copy( |
| 481 | storage_.data() + orig_size, buffers, length); |
| 482 | } |
| 483 | |
| 484 | } // namespace asio |
| 485 | |