// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_METRICS_STRUCTURED_STORAGE_MANAGER_H_ #define COMPONENTS_METRICS_STRUCTURED_STORAGE_MANAGER_H_ #include "components/metrics/structured/lib/event_buffer.h" #include "components/metrics/structured/lib/event_storage.h" #include "third_party/metrics_proto/structured_data.pb.h" namespace metrics::structured { // Enum representing why events were deleted. enum class DeleteReason { … }; // The Storage Manager is responsible for storing and managing Structured // Metrics events. // // The Storage Manager is responsible for the following: // * Flushing events to a local file when memory is exceeded. // * Dropping events when storage is exceeded. // * Retrieving events for upload. // // The Storage Manager is not thread safe, with the exception of the // StorageService interface. Therefore, construction and destruction must be // done on the same sequence. This class exists to provide an API to // StructuredMetricsService which only exists in //components. class StorageManager : public EventStorage<StructuredEventProto> { … }; } // namespace metrics::structured #endif // COMPONENTS_METRICS_STRUCTURED_STORAGE_MANAGER_H_