Skip to content
Snippets Groups Projects

AST-1637 Support model data in BdaBuffer

Merged AST-1637 Support model data in BdaBuffer
All threads resolved!
Merged Maik Nijhuis requested to merge ast-1637-bda-model-data into master
All threads resolved!
2 files
+ 42
20
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 12
7
@@ -34,7 +34,7 @@ BdaBuffer::BdaBuffer(const std::size_t pool_size, const Fields& fields)
original_capacity_(pool_size),
remaining_capacity_(pool_size) {
if (fields.data) {
data_.reserve(remaining_capacity_);
data_[""].reserve(remaining_capacity_);
}
if (fields.flags) {
flags_.reserve(remaining_capacity_);
@@ -56,8 +56,11 @@ BdaBuffer::BdaBuffer(const BdaBuffer& other, const Fields& fields,
original_capacity_(other.original_capacity_ - other.remaining_capacity_),
remaining_capacity_(0) {
if (fields.data) {
if (copy_fields.data) data_ = other.data_;
data_.resize(original_capacity_);
const auto other_it = other.data_.find("");
if (copy_fields.data && other_it != other.data_.end()) {
data_.insert(*other_it);
}
data_[""].resize(original_capacity_);
}
if (fields.flags) {
if (copy_fields.flags) flags_ = other.flags_;
@@ -94,13 +97,15 @@ bool BdaBuffer::AddRow(double time, double interval, double exposure,
}
remaining_capacity_ -= n_elements;
std::size_t offset = 0;
if (data_.capacity() > 0) {
offset = data_.size();
auto data_it = data_.find("");
if (data_it != data_.end()) {
aocommon::UVector<std::complex<float>>& data_vector = data_it->second;
offset = data_vector.size();
if (data) {
data_.insert(data_.end(), data, data + n_elements);
data_vector.insert(data_vector.end(), data, data + n_elements);
} else {
const float kNaN = std::numeric_limits<float>::quiet_NaN();
data_.insert(data_.end(), n_elements, {kNaN, kNaN});
data_vector.insert(data_vector.end(), n_elements, {kNaN, kNaN});
}
}
if (flags_.capacity() > 0) {
Loading