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_event_storage.h" 6 7 #include "base/functional/callback_forward.h" 8 #include "base/task/current_thread.h" 9 #include "components/metrics/structured/histogram_util.h" 10 11 namespace metrics::structured { 12 13 namespace { 14 using ::google::protobuf::RepeatedPtrField; 15 } 16 17 TestEventStorage::TestEventStorage() = default; 18 19 TestEventStorage::~TestEventStorage() = default; 20 AddEvent(StructuredEventProto event)21void TestEventStorage::AddEvent(StructuredEventProto event) { 22 events()->mutable_events()->Add(std::move(event)); 23 } 24 TakeEvents()25RepeatedPtrField<StructuredEventProto> TestEventStorage::TakeEvents() { 26 return std::move(*events_.mutable_events()); 27 } 28 RecordedEventsCount() const29int TestEventStorage::RecordedEventsCount() const { 30 return events_.events_size(); 31 } 32 Purge()33void TestEventStorage::Purge() { 34 events_.clear_uma_events(); 35 events_.clear_events(); 36 } 37 AddBatchEvents(const RepeatedPtrField<StructuredEventProto> & events)38void TestEventStorage::AddBatchEvents( 39 const RepeatedPtrField<StructuredEventProto>& events) { 40 events_.mutable_events()->MergeFrom(events); 41 } 42 CopyEvents(EventsProto * proto) const43void TestEventStorage::CopyEvents(EventsProto* proto) const { 44 proto->mutable_events()->MergeFrom(events_.events()); 45 } 46 47 } // namespace metrics::structured 48