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();