#include "content/browser/private_aggregation/private_aggregation_budget_storage.h"
#include <stdint.h>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
#include "base/check.h"
#include "base/check_op.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/location.h"
#include "base/memory/ptr_util.h"
#include "base/memory/scoped_refptr.h"
#include "base/metrics/histogram_functions.h"
#include "base/numerics/clamped_math.h"
#include "base/task/sequenced_task_runner.h"
#include "base/timer/elapsed_timer.h"
#include "components/sqlite_proto/key_value_data.h"
#include "components/sqlite_proto/key_value_table.h"
#include "components/sqlite_proto/proto_table_manager.h"
#include "content/browser/private_aggregation/proto/private_aggregation_budgets.pb.h"
#include "sql/database.h"
namespace content {
namespace {
constexpr base::FilePath::CharType kDatabaseFilename[] = …);
constexpr char kBudgetsTableName[] = …;
constexpr int kCurrentSchemaVersion = …;
void RecordInitializationStatus(
PrivateAggregationBudgetStorage::InitStatus status) { … }
void RecordFileSizeHistogram(const base::FilePath& path_to_database) { … }
}
base::OnceClosure PrivateAggregationBudgetStorage::CreateAsync(
scoped_refptr<base::SequencedTaskRunner> db_task_runner,
bool exclusively_run_in_memory,
base::FilePath path_to_db_dir,
base::OnceCallback<void(std::unique_ptr<PrivateAggregationBudgetStorage>)>
on_done_initializing) { … }
PrivateAggregationBudgetStorage::PrivateAggregationBudgetStorage(
scoped_refptr<base::SequencedTaskRunner> db_task_runner)
: … { … }
PrivateAggregationBudgetStorage::~PrivateAggregationBudgetStorage() { … }
bool PrivateAggregationBudgetStorage::InitializeOnDbSequence(
sql::Database* db,
bool exclusively_run_in_memory,
base::FilePath path_to_db_dir) { … }
void PrivateAggregationBudgetStorage::Shutdown() { … }
void PrivateAggregationBudgetStorage::FinishInitializationOnMainSequence(
std::unique_ptr<PrivateAggregationBudgetStorage> owned_this,
base::OnceCallback<void(std::unique_ptr<PrivateAggregationBudgetStorage>)>
on_done_initializing,
base::ElapsedTimer elapsed_timer,
bool was_successful) { … }
}