Index: components/ukm/public/ukm_entry_builder.cc |
diff --git a/components/ukm/public/ukm_entry_builder.cc b/components/ukm/public/ukm_entry_builder.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..72a227acc085557a1c4734ba9fdc150dae8ef024 |
--- /dev/null |
+++ b/components/ukm/public/ukm_entry_builder.cc |
@@ -0,0 +1,32 @@ |
+// Copyright 2017 The Chromium 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 "components/ukm/public/ukm_entry_builder.h" |
+ |
+#include <memory> |
+ |
+#include "base/metrics/metrics_hashes.h" |
+#include "components/ukm/public/interfaces/ukm_interface.mojom.h" |
+ |
+namespace ukm { |
+ |
+UkmEntryBuilder::UkmEntryBuilder( |
+ const UkmEntryBuilder::AddEntryCallback& callback, |
+ ukm::SourceId source_id, |
+ const char* event_name) |
+ : add_entry_callback_(callback), entry_(mojom::UkmEntry::New()) { |
+ entry_->source_id = source_id; |
+ entry_->event_hash = base::HashMetricName(event_name); |
+} |
+ |
+UkmEntryBuilder::~UkmEntryBuilder() { |
+ add_entry_callback_.Run(std::move(entry_)); |
+} |
+ |
+void UkmEntryBuilder::AddMetric(const char* metric_name, int64_t value) { |
+ entry_->metrics.emplace_back( |
+ mojom::UkmMetric::New(base::HashMetricName(metric_name), value)); |
+} |
+ |
+} // namespace ukm |