void Consumer::printInOrderData() { while (true) { const auto i = m_bufferedData.find(m_nextToPrint); if (i == m_bufferedData.end()) break; const Block& content = i->second->getContent(); std::cout.write(reinterpret_cast<const char*>(content.value()), content.value_size()); m_bufferedData.erase(i); m_nextToPrint++; } }