38 for (
auto& prop : enabled_properties) {
39 if (m_output_properties.count(prop) == 0) {
42 auto matching_properties = m_output_properties.equal_range(prop);
43 for (
auto i = matching_properties.first; i != matching_properties.second; ++i) {
44 if (
std::find(out_prop_list.begin(), out_prop_list.end(), i->second) == out_prop_list.end()) {
45 out_prop_list.emplace_back(i->second);
52 for (
const auto& property : out_prop_list) {
53 if (m_property_to_names_map.count(property) == 0) {
56 for (
const auto& name : m_property_to_names_map.at(property)) {
57 auto& col_info = m_name_to_col_info_map.at(name);
58 info_list.emplace_back(name, m_name_to_converter_map.at(name).first,
59 col_info.unit, col_info.description);
60 cell_values.emplace_back(m_name_to_converter_map.at(name).second(source));
63 if (info_list.empty()) {
66 return Row {
std::move(cell_values), std::make_shared<ColumnInfo>(
move(info_list))};
72 for (
auto& prop : m_output_properties) {
73 if (!properties.
empty() && properties_set.
find(prop.first) == properties_set.end()) {
77 for (
auto& col : m_property_to_names_map.at(prop.second)) {
79 auto& info = m_name_to_col_info_map.at(col);
80 if (info.description !=
"") {
83 if (info.unit !=
"") {