From 50e56db003055e96c5a12e675889e4afad07b65c Mon Sep 17 00:00:00 2001 From: Jon Burgess Date: Sat, 13 Oct 2018 22:26:25 +0100 Subject: [PATCH] Expose length of valid data in segment chunk --- pv/data/segment.cpp | 8 ++++++++ pv/data/segment.hpp | 1 + 2 files changed, 9 insertions(+) diff --git a/pv/data/segment.cpp b/pv/data/segment.cpp index 6ea17ff..ef55529 100644 --- a/pv/data/segment.cpp +++ b/pv/data/segment.cpp @@ -289,5 +289,13 @@ uint8_t* Segment::get_iterator_value(SegmentDataIterator* it) return (it->chunk + it->chunk_offs); } +uint64_t Segment::get_iterator_valid_length(SegmentDataIterator* it) +{ + assert(it->sample_index <= (sample_count_ - 1)); + + return ((chunk_size_ - it->chunk_offs) / unit_size_); +} + + } // namespace data } // namespace pv diff --git a/pv/data/segment.hpp b/pv/data/segment.hpp index 4c6c36a..f5a00c9 100644 --- a/pv/data/segment.hpp +++ b/pv/data/segment.hpp @@ -90,6 +90,7 @@ protected: 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_; -- 2.30.2