#include "components/reporting/client/report_queue_provider.h"
#include <memory>
#include <string>
#include "base/check_is_test.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/memory/ptr_util.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_refptr.h"
#include "base/metrics/histogram_functions.h"
#include "base/sequence_checker.h"
#include "base/task/bind_post_task.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/task_traits.h"
#include "base/task/thread_pool.h"
#include "base/types/expected.h"
#include "base/types/expected_macros.h"
#include "components/reporting/client/report_queue.h"
#include "components/reporting/client/report_queue_configuration.h"
#include "components/reporting/client/report_queue_impl.h"
#include "components/reporting/proto/synced/record_constants.pb.h"
#include "components/reporting/storage/storage_module_interface.h"
#include "components/reporting/util/reporting_errors.h"
#include "components/reporting/util/status.h"
#include "components/reporting/util/status_macros.h"
#include "components/reporting/util/statusor.h"
namespace reporting {
InitCompleteCallback;
ReportQueueProvider* g_report_queue_provider_instance = …;
class ReportQueueProvider::CreateReportQueueRequest { … };
bool ReportQueueProvider::IsEncryptedReportingPipelineEnabled() { … }
BASE_FEATURE(…);
ReportQueueProvider::ReportQueueProvider(
StorageModuleCreateCallback storage_create_cb,
scoped_refptr<base::SequencedTaskRunner> seq_task_runner)
: … { … }
ReportQueueProvider::~ReportQueueProvider() { … }
base::WeakPtr<ReportQueueProvider> ReportQueueProvider::GetWeakPtr() { … }
scoped_refptr<StorageModuleInterface> ReportQueueProvider::storage() const { … }
scoped_refptr<base::SequencedTaskRunner>
ReportQueueProvider::sequenced_task_runner() const { … }
void ReportQueueProvider::CreateNewQueue(
std::unique_ptr<ReportQueueConfiguration> config,
CreateReportQueueCallback cb) { … }
StatusOr<std::unique_ptr<ReportQueue, base::OnTaskRunnerDeleter>>
ReportQueueProvider::CreateNewSpeculativeQueue(
const ReportQueue::SpeculativeConfigSettings& config_settings) { … }
void ReportQueueProvider::OnInitCompleted() { … }
void ReportQueueProvider::CreateQueue(
std::unique_ptr<ReportQueueConfiguration> config,
CreateReportQueueCallback create_cb) { … }
StatusOr<std::unique_ptr<ReportQueue, base::OnTaskRunnerDeleter>>
ReportQueueProvider::CreateSpeculativeQueue(
std::unique_ptr<ReportQueueConfiguration> config) { … }
void ReportQueueProvider::CheckInitializationState() { … }
void ReportQueueProvider::OnStorageModuleConfigured(
StatusOr<scoped_refptr<StorageModuleInterface>> storage_result) { … }
ReportQueueProvider* ReportQueueProvider::GetInstance() { … }
}