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()12TestStructuredMetricsRecorder::~TestStructuredMetricsRecorder() { 13 Destroy(); 14 } 15 RecordEvent(Event && event)16void 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() const25bool TestStructuredMetricsRecorder::IsReadyToRecord() const { 26 return true; 27 } 28 Get()29TestStructuredMetricsRecorder* TestStructuredMetricsRecorder::Get() { 30 return g_test_recorder; 31 } 32 Initialize()33void TestStructuredMetricsRecorder::Initialize() { 34 g_test_recorder = this; 35 StructuredMetricsClient::Get()->SetDelegate(this); 36 } 37 Destroy()38void TestStructuredMetricsRecorder::Destroy() { 39 g_test_recorder = nullptr; 40 StructuredMetricsClient::Get()->UnsetDelegate(); 41 } 42 GetEvents()43const std::vector<Event>& TestStructuredMetricsRecorder::GetEvents() { 44 return events_; 45 } 46 47 } // namespace metrics::structured 48