xref: /aosp_15_r20/external/cronet/components/metrics/structured/test/test_structured_metrics_recorder.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2023 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/structured/test/test_structured_metrics_recorder.h"
6 
7 namespace metrics::structured {
8 
9 TestStructuredMetricsRecorder* g_test_recorder = nullptr;
10 
11 TestStructuredMetricsRecorder::TestStructuredMetricsRecorder() = default;
~TestStructuredMetricsRecorder()12 TestStructuredMetricsRecorder::~TestStructuredMetricsRecorder() {
13   Destroy();
14 }
15 
RecordEvent(Event && event)16 void TestStructuredMetricsRecorder::RecordEvent(Event&& event) {
17   // No-op if not properly initialized.
18   if (!IsReadyToRecord()) {
19     return;
20   }
21 
22   events_.emplace_back(std::move(event));
23 }
24 
IsReadyToRecord() const25 bool TestStructuredMetricsRecorder::IsReadyToRecord() const {
26   return true;
27 }
28 
Get()29 TestStructuredMetricsRecorder* TestStructuredMetricsRecorder::Get() {
30   return g_test_recorder;
31 }
32 
Initialize()33 void TestStructuredMetricsRecorder::Initialize() {
34   g_test_recorder = this;
35   StructuredMetricsClient::Get()->SetDelegate(this);
36 }
37 
Destroy()38 void TestStructuredMetricsRecorder::Destroy() {
39   g_test_recorder = nullptr;
40   StructuredMetricsClient::Get()->UnsetDelegate();
41 }
42 
GetEvents()43 const std::vector<Event>& TestStructuredMetricsRecorder::GetEvents() {
44   return events_;
45 }
46 
47 }  // namespace metrics::structured
48