36 , m_bufferSize(bufferSize)
38 BOOST_ASSERT(bufferSize > 0);
42 StreamSource::doPump()
44 BOOST_ASSERT(
m_next !=
nullptr);
46 std::vector<uint8_t> buffer(m_bufferSize);
47 size_t dataOffset = 0;
50 while (dataLen > 0 || !m_is.eof()) {
53 size_t nBytesWritten =
m_next->write({&buffer[dataOffset], dataLen});
55 dataOffset += nBytesWritten;
56 dataLen -= nBytesWritten;
61 else if (m_is.good()) {
62 m_is.read(
reinterpret_cast<char*
>(&buffer.front()), buffer.size());
64 dataLen = m_is.gcount();