bool OutputFile::write(const BufferSequence &sequence) { boost::mutex::scoped_lock lock(write_mutex_); std::size_t n = buffers_end(sequence) - buffers_begin(sequence); if (n == 0) return true; MutableBuffer buffer = out_.prepare(n); std::copy(buffers_begin(sequence), buffers_end(sequence), buffer_cast<char *>(buffer)); out_.commit(n); worker_->post(boost::bind(&OutputFile::doWrite, this)); worker_->start(); return true; }
std::string XMLClient::makeString(boost::asio::streambuf& streambuf, std::size_t n) { return std::string(buffers_begin(streambuf.data()), buffers_begin(streambuf.data()) + n); }