// Copyright 2020 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_REPORTING_STORAGE_STORAGE_CONFIGURATION_H_ #define COMPONENTS_REPORTING_STORAGE_STORAGE_CONFIGURATION_H_ #include <string> #include <string_view> #include <utility> #include <vector> #include "base/files/file_path.h" #include "base/memory/scoped_refptr.h" #include "base/time/time.h" #include "components/reporting/proto/synced/record_constants.pb.h" #include "components/reporting/resources/resource_manager.h" namespace reporting { // Forward declaration. class QueueOptions; // Storage options class allowing to set parameters individually, e.g.: // Storage::Create(Options() // .set_directory("/var/cache/reporting") // .set_max_record_size(4 * 1024u) // .set_max_total_files_size(64 * 1024u * 1024u) // .set_max_total_memory_size(256 * 1024u), // callback); class StorageOptions { … }; // Single queue options class allowing to set parameters individually, e.g.: // StorageQueue::Create(QueueOptions(storage_options) // .set_subdirectory("reporting") // .set_file_prefix(FILE_PATH_LITERAL("p00000001")), // callback); // storage_options must outlive QueueOptions. class QueueOptions { … }; } // namespace reporting #endif // COMPONENTS_REPORTING_STORAGE_STORAGE_CONFIGURATION_H_