X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fsegment.hpp;h=62750c11c9c62e0d0de0f948e8d4896417970a22;hp=0cc7e6f85821bf9146f59c623af1935a896b8a3a;hb=558ad6ceb934ab7406d286c1a4ae08da4aba1448;hpb=870ea3dbf35b182e120c5d84ab89bf9cb7691232 diff --git a/pv/data/segment.hpp b/pv/data/segment.hpp index 0cc7e6f8..62750c11 100644 --- a/pv/data/segment.hpp +++ b/pv/data/segment.hpp @@ -23,8 +23,8 @@ #include "pv/util.hpp" -#include #include +#include #include using std::recursive_mutex; @@ -39,6 +39,7 @@ struct MediumSize32Single; struct MaxSize32Single; struct MediumSize32Multi; struct MaxSize32Multi; +struct MaxSize32MultiAtOnce; struct MaxSize32MultiIterated; } // namespace SegmentTest @@ -70,12 +71,15 @@ public: unsigned int unit_size() const; + void set_complete(); + bool is_complete() const; + void free_unused_memory(); protected: void append_single_sample(void *data); void append_samples(void *data, uint64_t samples); - uint8_t* get_raw_samples(uint64_t start, uint64_t count) const; + void get_raw_samples(uint64_t start, uint64_t count, uint8_t *dest) const; SegmentRawDataIterator* begin_raw_sample_iteration(uint64_t start); void continue_raw_sample_iteration(SegmentRawDataIterator* it, uint64_t increase); @@ -92,6 +96,7 @@ protected: unsigned int unit_size_; int iterator_count_; bool mem_optimization_requested_; + bool is_complete_; friend struct SegmentTest::SmallSize8Single; friend struct SegmentTest::MediumSize8Single; @@ -101,6 +106,7 @@ protected: friend struct SegmentTest::MaxSize32Single; friend struct SegmentTest::MediumSize32Multi; friend struct SegmentTest::MaxSize32Multi; + friend struct SegmentTest::MaxSize32MultiAtOnce; friend struct SegmentTest::MaxSize32MultiIterated; };