DataSnapshot::DataSnapshot(int unit_size) :
_data(NULL),
- _data_length(0),
+ _sample_count(0),
_unit_size(unit_size)
{
assert(_unit_size > 0);
uint64_t DataSnapshot::get_sample_count()
{
- return _data_length / _unit_size;
+ return _sample_count;
}
-void DataSnapshot::append_data(void *data, uint64_t length)
+void DataSnapshot::append_data(void *data, uint64_t samples)
{
- _data = realloc(_data, _data_length + length);
- memcpy((uint8_t*)_data + _data_length, data, length);
- _data_length += length;
+ _data = realloc(_data, (_sample_count + samples) * _unit_size);
+ memcpy((uint8_t*)_data + _sample_count * _unit_size,
+ data, samples * _unit_size);
+ _sample_count += samples;
}