#include <mutex>
#include <vector>
+using std::recursive_mutex;
+using std::vector;
+
namespace SegmentTest {
struct SmallSize8Single;
struct MediumSize8Single;
struct MediumSize32Multi;
struct MaxSize32Multi;
struct MaxSize32MultiIterated;
-}
+} // namespace SegmentTest
namespace pv {
namespace data {
class Segment
{
private:
- static const uint64_t MaxChunkSize = 10*1024*1024; /* 10MiB */
+ static const uint64_t MaxChunkSize;
public:
Segment(uint64_t samplerate, unsigned int unit_size);
void append_samples(void *data, uint64_t samples);
uint8_t* get_raw_samples(uint64_t start, uint64_t count) const;
- SegmentRawDataIterator* begin_raw_sample_iteration(uint64_t start) const;
- void continue_raw_sample_iteration(SegmentRawDataIterator* it, uint64_t increase) const;
- void end_raw_sample_iteration(SegmentRawDataIterator* it) const;
+ SegmentRawDataIterator* begin_raw_sample_iteration(uint64_t start);
+ void continue_raw_sample_iteration(SegmentRawDataIterator* it, uint64_t increase);
+ void end_raw_sample_iteration(SegmentRawDataIterator* it);
- mutable std::recursive_mutex mutex_;
- std::vector<uint8_t*> data_chunks_;
+ mutable recursive_mutex mutex_;
+ vector<uint8_t*> data_chunks_;
uint8_t* current_chunk_;
uint64_t used_samples_, unused_samples_;
uint64_t sample_count_;
double samplerate_;
uint64_t chunk_size_;
unsigned int unit_size_;
+ int iterator_count_;
+ bool mem_optimization_requested_;
friend struct SegmentTest::SmallSize8Single;
friend struct SegmentTest::MediumSize8Single;