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++;
    }
}