- mutable std::recursive_mutex mutex_;
- std::vector<uint8_t> data_;
- uint64_t sample_count_;
- double start_time_;
+ void append_single_sample(void *data);
+ void append_samples(void *data, uint64_t samples);
+ const uint8_t* get_raw_sample(uint64_t sample_num) const;
+ void get_raw_samples(uint64_t start, uint64_t count, uint8_t *dest) const;
+
+ SegmentDataIterator* begin_sample_iteration(uint64_t start);
+ void continue_sample_iteration(SegmentDataIterator* it, uint64_t increase);
+ void end_sample_iteration(SegmentDataIterator* it);
+ uint8_t* get_iterator_value(SegmentDataIterator* it);
+ uint64_t get_iterator_valid_length(SegmentDataIterator* it);
+
+ uint32_t segment_id_;
+ mutable recursive_mutex mutex_;
+ deque<uint8_t*> data_chunks_;
+ uint8_t* current_chunk_;
+ uint64_t used_samples_, unused_samples_;
+ atomic<uint64_t> sample_count_;
+ pv::util::Timestamp start_time_;