26 return [](std::array<Metric2DViewIndex*, 2>
const& views, std::string
const&
name,
MetricInfo const& metric,
int value,
int metricsIndex) ->
void {
27 for (
auto viewPtr : views) {
28 auto& view = *viewPtr;
29 if (view.prefix.size() >
name.size()) {
32 if (std::mismatch(view.prefix.begin(), view.prefix.end(),
name.begin()).first != view.prefix.end()) {
39 extra.erase(0, view.prefix.size() + 1);
42 view.indexes.resize(view.w * view.h, -1);
44 }
else if (extra ==
"h") {
46 view.indexes.resize(view.w * view.h, -1);
51 idx = std::stoi(extra,
nullptr, 10);
53 LOG(error) <<
"Badly formatted metric";
56 LOG(error) <<
"Negative metric";
59 if (view.indexes.size() <= idx) {
60 view.indexes.resize(std::max(idx + 1, view.w * view.h), -1);
62 view.indexes[idx] = metricsIndex;