chromium/components/origin_trials/browser/leveldb_persistence_provider.h

// Copyright 2022 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_ORIGIN_TRIALS_BROWSER_LEVELDB_PERSISTENCE_PROVIDER_H_
#define COMPONENTS_ORIGIN_TRIALS_BROWSER_LEVELDB_PERSISTENCE_PROVIDER_H_

#include "components/origin_trials/common/origin_trials_persistence_provider.h"

#include <memory>

#include "base/containers/flat_map.h"
#include "base/containers/flat_set.h"
#include "base/memory/weak_ptr.h"
#include "base/synchronization/lock.h"
#include "base/time/time.h"
#include "components/leveldb_proto/public/proto_database.h"

namespace leveldb_proto {
class ProtoDatabaseProvider;
}

namespace origin_trials_pb {
class TrialTokenDbEntries;
}

namespace url {
class Origin;
}

namespace origin_trials {

SiteOriginsMap;
OriginTrialMap;

ProtoKeyVector;
ProtoEntryVector;
ProtoKeyEntryVector;

// Persistence for Persistent Origin Trials based on LevelDB, with an in-memory
// cache to ensure quick and synchronous reads.
class LevelDbPersistenceProvider : public OriginTrialsPersistenceProvider {};

}  // namespace origin_trials

#endif  // COMPONENTS_ORIGIN_TRIALS_BROWSER_LEVELDB_PERSISTENCE_PROVIDER_H_