1 // Copyright 2017 The Chromium Authors. All rights reserved.
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 "services/metrics/ukm_recorder_interface.h"
6 
7 #include "base/atomic_sequence_num.h"
8 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
9 #include "services/metrics/public/cpp/ukm_recorder.h"
10 #include "services/metrics/public/cpp/ukm_source_id.h"
11 #include "url/gurl.h"
12 
13 namespace metrics {
14 
UkmRecorderInterface(ukm::UkmRecorder * ukm_recorder)15 UkmRecorderInterface::UkmRecorderInterface(ukm::UkmRecorder* ukm_recorder)
16     : ukm_recorder_(ukm_recorder) {}
17 
18 UkmRecorderInterface::~UkmRecorderInterface() = default;
19 
20 // static
Create(ukm::UkmRecorder * ukm_recorder,mojo::PendingReceiver<ukm::mojom::UkmRecorderInterface> receiver)21 void UkmRecorderInterface::Create(
22     ukm::UkmRecorder* ukm_recorder,
23     mojo::PendingReceiver<ukm::mojom::UkmRecorderInterface> receiver) {
24   mojo::MakeSelfOwnedReceiver(
25       std::make_unique<UkmRecorderInterface>(ukm_recorder),
26       std::move(receiver));
27 }
28 
AddEntry(ukm::mojom::UkmEntryPtr ukm_entry)29 void UkmRecorderInterface::AddEntry(ukm::mojom::UkmEntryPtr ukm_entry) {
30   ukm_recorder_->AddEntry(std::move(ukm_entry));
31 }
32 
UpdateSourceURL(int64_t source_id,const std::string & url)33 void UkmRecorderInterface::UpdateSourceURL(int64_t source_id,
34                                            const std::string& url) {
35   ukm_recorder_->UpdateSourceURL(source_id, GURL(url));
36 }
37 
38 }  // namespace metrics
39