JFJochReceiverPlots: Safer code
This commit is contained in:
@@ -189,56 +189,3 @@ MultiLinePlot StatusVector::GetMaxPlot(int64_t bin_size, float x_start, float x_
|
||||
ret.AddPlot(GetMaxPerBin(bin_size, x_start, x_incr, fill_value));
|
||||
return ret;
|
||||
}
|
||||
|
||||
void StatusMultiVector::Clear(size_t reserve) {
|
||||
std::unique_lock ul(m);
|
||||
if (reserve > 0)
|
||||
r = reserve;
|
||||
status.clear();
|
||||
}
|
||||
|
||||
void StatusMultiVector::AddElement(const std::string &s, uint32_t id, float val) {
|
||||
std::unique_lock ul(m);
|
||||
if (!status.contains(s)) {
|
||||
status[s] = std::make_unique<StatusVector>();
|
||||
status[s]->Clear(r);
|
||||
}
|
||||
status[s]->AddElement(id, val);
|
||||
}
|
||||
|
||||
void StatusMultiVector::AddElement(const std::string &s, uint32_t id, std::optional<float> val) {
|
||||
// no need to lock, as AddElement(string, u32, T) has lock already
|
||||
if (val.has_value())
|
||||
AddElement(s, id, val.value());
|
||||
}
|
||||
|
||||
MultiLinePlotStruct StatusMultiVector::GetMeanPerBin(const std::string &in_key, int64_t bin_size, float x_start,
|
||||
float x_incr,
|
||||
const std::optional<float> &fill_value) const {
|
||||
MultiLinePlotStruct ret{};
|
||||
for (const auto &[key, value]: status) {
|
||||
if (key == in_key) {
|
||||
ret = value->GetMeanPerBin(bin_size, x_start, x_incr, fill_value);
|
||||
ret.title = key;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
MultiLinePlot StatusMultiVector::GetMeanPlot(int64_t bin_size, float x_start, float x_incr,
|
||||
const std::optional<float> &fill_value) const {
|
||||
MultiLinePlot ret;
|
||||
for (const auto &[key, value]: status) {
|
||||
auto tmp = value->GetMeanPerBin(bin_size, x_start, x_incr, fill_value);
|
||||
tmp.title = key;
|
||||
ret.AddPlot(tmp);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::vector<float> StatusMultiVector::ExportArray(const std::string &s) const {
|
||||
auto iter = status.find(s);
|
||||
if (iter == status.end() || !iter->second)
|
||||
return {};
|
||||
return iter->second->ExportArray();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user