blob: 749cae96ead3b5adce157faa979ccd02aa2328ca [file] [log] [blame]
// Copyright 2021 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef RMAD_UTILS_COMPONENT_UTILS_H_
#define RMAD_UTILS_COMPONENT_UTILS_H_
#include <string>
#include <runtime_probe/proto_bindings/runtime_probe.pb.h>
namespace rmad {
// Identifier for each component fields.
std::string GetComponentFieldsIdentifier(
const runtime_probe::Battery_Fields& fields);
std::string GetComponentFieldsIdentifier(
const runtime_probe::Storage_Fields& fields);
std::string GetComponentFieldsIdentifier(
const runtime_probe::Camera_Fields& fields);
std::string GetComponentFieldsIdentifier(
const runtime_probe::InputDevice_Fields& fields);
std::string GetComponentFieldsIdentifier(
const runtime_probe::Memory_Fields& fields);
std::string GetComponentFieldsIdentifier(
const runtime_probe::Edid_Fields& fields);
std::string GetComponentFieldsIdentifier(
const runtime_probe::Network_Fields& fields);
// Extension for |runtime_probe::ComponentFields|.
std::string GetComponentFieldsIdentifier(
const runtime_probe::ComponentFields& fields);
// Extension for runtime_probe components.
template <typename Component>
std::string GetComponentIdentifier(const Component& component) {
return GetComponentFieldsIdentifier(component.values());
}
} // namespace rmad
#endif // RMAD_UTILS_COMPONENT_UTILS_H_