| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <cobalt-client/cpp/metric-options.h> |
| #include <cobalt-client/cpp/types-internal.h> |
| #include <fbl/string_printf.h> |
| |
| namespace cobalt_client { |
| namespace internal { |
| |
| LocalMetricInfo LocalMetricInfo::From(const MetricOptions& options) { |
| LocalMetricInfo metric_info; |
| if (!options.name.empty()) { |
| metric_info.name = options.name; |
| return metric_info; |
| } |
| |
| if (options.get_metric_name != nullptr) { |
| metric_info.name = options.get_metric_name(options.metric_id); |
| } else { |
| metric_info.name = fbl::StringPrintf("%u", options.metric_id); |
| } |
| |
| if (!options.component.empty()) { |
| metric_info.name = |
| fbl::StringPrintf("%s.%s", metric_info.name.c_str(), options.component.c_str()); |
| } |
| |
| if (options.get_event_name != nullptr) { |
| metric_info.name = fbl::StringPrintf("%s.%s", metric_info.name.c_str(), |
| options.get_event_name(options.event_code)); |
| } else { |
| metric_info.name = fbl::StringPrintf("%s.%u", metric_info.name.c_str(), options.event_code); |
| } |
| |
| return metric_info; |
| } |
| |
| bool LocalMetricInfo::operator==(const LocalMetricInfo& rhs) const { |
| return rhs.name == name; |
| } |
| |
| bool LocalMetricInfo::operator!=(const LocalMetricInfo& rhs) const { |
| return !(*this == rhs); |
| } |
| |
| RemoteMetricInfo RemoteMetricInfo::From(const MetricOptions& options) { |
| RemoteMetricInfo metric_info; |
| metric_info.metric_id = options.metric_id; |
| metric_info.component = options.component; |
| metric_info.event_code = options.event_code; |
| return metric_info; |
| } |
| |
| bool RemoteMetricInfo::operator==(const RemoteMetricInfo& rhs) const { |
| return rhs.metric_id == metric_id && rhs.event_code == event_code && rhs.component == component; |
| } |
| |
| bool RemoteMetricInfo::operator!=(const RemoteMetricInfo& rhs) const { |
| return !(*this == rhs); |
| } |
| |
| } // namespace internal |
| } // namespace cobalt_client |