• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2024 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "components/metrics/dwa/dwa_entry_builder_base.h"
6 
7 #include <memory>
8 #include <string>
9 #include <tuple>
10 
11 #include "base/containers/flat_set.h"
12 #include "base/metrics/metrics_hashes.h"
13 #include "components/metrics/dwa/mojom/dwa_interface.mojom.h"
14 
15 namespace dwa::internal {
16 
17 DwaEntryBuilderBase::DwaEntryBuilderBase(DwaEntryBuilderBase&&) = default;
18 
19 DwaEntryBuilderBase& DwaEntryBuilderBase::operator=(DwaEntryBuilderBase&&) =
20     default;
21 
22 DwaEntryBuilderBase::~DwaEntryBuilderBase() = default;
23 
DwaEntryBuilderBase(uint64_t event_hash)24 DwaEntryBuilderBase::DwaEntryBuilderBase(uint64_t event_hash)
25     : entry_(metrics::dwa::mojom::DwaEntry::New()) {
26   entry_->event_hash = event_hash;
27 }
28 
SetContentInternal(uint64_t content_hash)29 void DwaEntryBuilderBase::SetContentInternal(uint64_t content_hash) {
30   entry_->content_hash = content_hash;
31 }
32 
SetMetricInternal(uint64_t metric_hash,int64_t value)33 void DwaEntryBuilderBase::SetMetricInternal(uint64_t metric_hash,
34                                             int64_t value) {
35   entry_->metrics.insert_or_assign(metric_hash, value);
36 }
37 
AddToStudiesOfInterestInternal(std::string_view study_name)38 void DwaEntryBuilderBase::AddToStudiesOfInterestInternal(
39     std::string_view study_name) {
40   entry_->studies_of_interest.insert_or_assign(std::string(study_name), true);
41 }
42 
Record(metrics::dwa::DwaRecorder * recorder)43 void DwaEntryBuilderBase::Record(metrics::dwa::DwaRecorder* recorder) {
44   if (recorder) {
45     recorder->AddEntry(std::move(entry_));
46   } else {
47     entry_.reset();
48   }
49 }
50 
GetEntryForTesting()51 metrics::dwa::mojom::DwaEntryPtr* DwaEntryBuilderBase::GetEntryForTesting() {
52   return &entry_;
53 }
54 
55 }  // namespace dwa::internal
56