#include "content/browser/indexed_db/indexed_db_tombstone_sweeper.h"
#include <string>
#include <string_view>
#include "base/not_fatal_until.h"
#include "base/rand_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/sequenced_task_runner.h"
#include "components/services/storage/indexed_db/scopes/varint_coding.h"
#include "content/browser/indexed_db/indexed_db_backing_store.h"
#include "third_party/blink/public/common/indexeddb/indexeddb_key.h"
#include "third_party/blink/public/common/indexeddb/indexeddb_metadata.h"
#include "third_party/leveldatabase/env_chromium.h"
#include "third_party/leveldatabase/src/include/leveldb/db.h"
#include "third_party/leveldatabase/src/include/leveldb/iterator.h"
namespace content {
namespace {
IndexedDBDatabaseMetadata;
IndexedDBIndexMetadata;
IndexedDBKey;
IndexedDBObjectStoreMetadata;
}
template <typename T>
WrappingIterator<T>::WrappingIterator() { … }
template <typename T>
WrappingIterator<T>::WrappingIterator(const T* container,
size_t start_position) { … }
template <typename T>
WrappingIterator<T>::~WrappingIterator() { … }
template <typename T>
void WrappingIterator<T>::Next() { … }
template <typename T>
const typename T::value_type& WrappingIterator<T>::Value() const { … }
IndexedDBTombstoneSweeper::IndexedDBTombstoneSweeper(int round_iterations,
int max_iterations,
leveldb::DB* database)
: … { … }
IndexedDBTombstoneSweeper::~IndexedDBTombstoneSweeper() { … }
bool IndexedDBTombstoneSweeper::RequiresMetadata() const { … }
void IndexedDBTombstoneSweeper::SetMetadata(
const std::vector<IndexedDBDatabaseMetadata>* metadata) { … }
IndexedDBTombstoneSweeper::SweepState::SweepState() = default;
IndexedDBTombstoneSweeper::SweepState::~SweepState() = default;
bool IndexedDBTombstoneSweeper::RunRound() { … }
leveldb::Status IndexedDBTombstoneSweeper::FlushDeletions() { … }
bool IndexedDBTombstoneSweeper::ShouldContinueIteration(
IndexedDBTombstoneSweeper::Status* sweep_status,
leveldb::Status* leveldb_status,
int* round_iterations) { … }
IndexedDBTombstoneSweeper::Status IndexedDBTombstoneSweeper::DoSweep(
leveldb::Status* leveldb_status) { … }
bool IndexedDBTombstoneSweeper::IterateIndex(
int64_t database_id,
int64_t object_store_id,
const IndexedDBIndexMetadata& index,
IndexedDBTombstoneSweeper::Status* sweep_status,
leveldb::Status* leveldb_status,
int* round_iterations) { … }
}