MCPcopy Create free account
hub / github.com/apache/nifi-minifi-cpp / serializeMetrics

Method serializeMetrics

libminifi/src/c2/C2Agent.cpp:290–311  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

288}
289
290void C2Agent::serializeMetrics(C2Payload &metric_payload, const std::string &name, const std::vector<state::response::SerializedResponseNode> &metrics, bool is_container, bool is_collapsible) {
291 const auto payloads = std::count_if(begin(metrics), end(metrics), [](const state::response::SerializedResponseNode& metric) { return !metric.children.empty(); });
292 metric_payload.reservePayloads(metric_payload.getNestedPayloads().size() + payloads);
293 for (const auto &metric : metrics) {
294 if (metric.children.size() > 0) {
295 C2Payload child_metric_payload(metric_payload.getOperation());
296 if (metric.array) {
297 child_metric_payload.setContainer(true);
298 }
299 auto collapsible = !metric.collapsible ? metric.collapsible : is_collapsible;
300 child_metric_payload.setCollapsible(collapsible);
301 child_metric_payload.setLabel(metric.name);
302 serializeMetrics(child_metric_payload, metric.name, metric.children, is_container, collapsible);
303 metric_payload.addPayload(std::move(child_metric_payload));
304 } else {
305 C2ContentResponse response(metric_payload.getOperation());
306 response.name = name;
307 response.operation_arguments[metric.name] = metric.value;
308 metric_payload.addContent(std::move(response), is_collapsible);
309 }
310 }
311}
312
313void C2Agent::extractPayload(const C2Payload &resp) {
314 if (resp.getStatus().getState() == state::UpdateState::NESTED) {

Callers

nothing calls this directly

Calls 9

reservePayloadsMethod · 0.80
setContainerMethod · 0.80
setCollapsibleMethod · 0.80
setLabelMethod · 0.80
addPayloadMethod · 0.80
addContentMethod · 0.80
emptyMethod · 0.45
sizeMethod · 0.45
getOperationMethod · 0.45

Tested by

no test coverage detected