2017-09-11 20:42:30 +02:00
|
|
|
// Copyright 2017 The Chromium Embedded Framework Authors.
|
|
|
|
// Portions copyright 2016 The Chromium Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
|
|
// found in the LICENSE file.
|
|
|
|
|
|
|
|
#ifndef CEF_LIBCEF_BROWSER_EXTENSIONS_VALUE_STORE_CEF_VALUE_STORE_H_
|
|
|
|
#define CEF_LIBCEF_BROWSER_EXTENSIONS_VALUE_STORE_CEF_VALUE_STORE_H_
|
|
|
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
#include "base/compiler_specific.h"
|
|
|
|
#include "base/macros.h"
|
|
|
|
#include "extensions/browser/value_store/value_store.h"
|
|
|
|
|
2021-09-20 11:06:23 +02:00
|
|
|
namespace value_store {
|
|
|
|
|
|
|
|
// Implementation Based on TestingValueStore.
|
|
|
|
// ValueStore with an in-memory storage but the ability to optionally fail all
|
|
|
|
// operations.
|
2017-09-11 20:42:30 +02:00
|
|
|
class CefValueStore : public ValueStore {
|
|
|
|
public:
|
|
|
|
CefValueStore();
|
|
|
|
~CefValueStore() override;
|
2021-09-20 11:06:23 +02:00
|
|
|
CefValueStore(const CefValueStore&) = delete;
|
|
|
|
CefValueStore& operator=(const CefValueStore&) = delete;
|
|
|
|
|
|
|
|
// Sets the error code for requests. If OK, errors won't be thrown.
|
|
|
|
// Defaults to OK.
|
|
|
|
void set_status_code(StatusCode status_code);
|
2017-09-11 20:42:30 +02:00
|
|
|
|
|
|
|
// Accessors for the number of reads/writes done by this value store. Each
|
|
|
|
// Get* operation (except for the BytesInUse ones) counts as one read, and
|
|
|
|
// each Set*/Remove/Clear operation counts as one write. This is useful in
|
|
|
|
// tests seeking to assert that some number of reads/writes to their
|
|
|
|
// underlying value store have (or have not) happened.
|
2021-09-20 11:06:23 +02:00
|
|
|
int read_count() { return read_count_; }
|
|
|
|
int write_count() { return write_count_; }
|
2017-12-07 22:44:24 +01:00
|
|
|
|
2017-09-11 20:42:30 +02:00
|
|
|
// ValueStore implementation.
|
|
|
|
size_t GetBytesInUse(const std::string& key) override;
|
|
|
|
size_t GetBytesInUse(const std::vector<std::string>& keys) override;
|
|
|
|
size_t GetBytesInUse() override;
|
|
|
|
ReadResult Get(const std::string& key) override;
|
|
|
|
ReadResult Get(const std::vector<std::string>& keys) override;
|
|
|
|
ReadResult Get() override;
|
|
|
|
WriteResult Set(WriteOptions options,
|
|
|
|
const std::string& key,
|
|
|
|
const base::Value& value) override;
|
|
|
|
WriteResult Set(WriteOptions options,
|
|
|
|
const base::DictionaryValue& values) override;
|
|
|
|
WriteResult Remove(const std::string& key) override;
|
|
|
|
WriteResult Remove(const std::vector<std::string>& keys) override;
|
|
|
|
WriteResult Clear() override;
|
|
|
|
|
|
|
|
private:
|
|
|
|
base::DictionaryValue storage_;
|
2021-09-20 11:06:23 +02:00
|
|
|
int read_count_ = 0;
|
|
|
|
int write_count_ = 0;
|
2017-09-11 20:42:30 +02:00
|
|
|
ValueStore::Status status_;
|
|
|
|
};
|
|
|
|
|
2021-09-20 11:06:23 +02:00
|
|
|
} // namespace value_store
|
|
|
|
|
2017-09-11 20:42:30 +02:00
|
|
|
#endif // CEF_LIBCEF_BROWSER_EXTENSIONS_VALUE_STORE_CEF_VALUE_STORE_H_
|