JetStreamer Node1 JetStreamer - m_done - m_valid + JetStreamer() + next() + isValid() Node2 std::unique_ptr< IJetStream > + operator->() Node2->Node1 -m_stream Node3 IJetStream + ~IJetStream() + get() + valid() + bump() + dump() Node3->Node2 +ptr