1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef EXTENSIONS_BROWSER_API_STORAGE_WEAK_UNLIMITED_SETTINGS_STORAGE_H_ 6#define EXTENSIONS_BROWSER_API_STORAGE_WEAK_UNLIMITED_SETTINGS_STORAGE_H_ 7 8#include "base/compiler_specific.h" 9#include "extensions/browser/value_store/value_store.h" 10 11namespace extensions { 12 13// A ValueStore decorator which makes calls through |Set| ignore quota. 14// "Weak" because ownership of the delegate isn't taken; this is designed to be 15// temporarily attached to storage areas. 16class WeakUnlimitedSettingsStorage : public ValueStore { 17 public: 18 // Ownership of |delegate| NOT taken. 19 explicit WeakUnlimitedSettingsStorage(ValueStore* delegate); 20 21 virtual ~WeakUnlimitedSettingsStorage(); 22 23 // ValueStore implementation. 24 virtual size_t GetBytesInUse(const std::string& key) OVERRIDE; 25 virtual size_t GetBytesInUse(const std::vector<std::string>& keys) OVERRIDE; 26 virtual size_t GetBytesInUse() OVERRIDE; 27 virtual ReadResult Get(const std::string& key) OVERRIDE; 28 virtual ReadResult Get(const std::vector<std::string>& keys) OVERRIDE; 29 virtual ReadResult Get() OVERRIDE; 30 virtual WriteResult Set( 31 WriteOptions options, 32 const std::string& key, 33 const base::Value& value) OVERRIDE; 34 virtual WriteResult Set( 35 WriteOptions options, const base::DictionaryValue& values) OVERRIDE; 36 virtual WriteResult Remove(const std::string& key) OVERRIDE; 37 virtual WriteResult Remove(const std::vector<std::string>& keys) OVERRIDE; 38 virtual WriteResult Clear() OVERRIDE; 39 virtual bool Restore() OVERRIDE; 40 virtual bool RestoreKey(const std::string& key) OVERRIDE; 41 42 private: 43 // The delegate storage area, NOT OWNED. 44 ValueStore* const delegate_; 45 46 DISALLOW_COPY_AND_ASSIGN(WeakUnlimitedSettingsStorage); 47}; 48 49} // namespace extensions 50 51#endif // EXTENSIONS_BROWSER_API_STORAGE_WEAK_UNLIMITED_SETTINGS_STORAGE_H_ 52