Buffer Node1 Buffer - m_size + Buffer() + peek() + next() + eventsInFile() + reader() - sort() - fillBuffer() Node2 std::unique_ptr< EventStorage ::DataReader > + ptr + operator->() Node2->Node1 -m_reader Node3 std::vector< Event > Node3->Node1 -m_events Node4 Event + frag + Event() Node4->Node3 +elements Node5 std::unique_ptr< const uint32_t[]> + ptr + operator->() Node5->Node4 +blob