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 CHROME_BROWSER_PREFS_TRACKED_DICTIONARY_HASH_STORE_CONTENTS_H_ 6#define CHROME_BROWSER_PREFS_TRACKED_DICTIONARY_HASH_STORE_CONTENTS_H_ 7 8#include "base/compiler_specific.h" 9#include "base/macros.h" 10#include "chrome/browser/prefs/tracked/hash_store_contents.h" 11 12namespace base { 13class DictionaryValue; 14} // namespace base 15 16namespace user_prefs { 17class PrefRegistrySyncable; 18} // namespace user_prefs 19 20// Implements HashStoreContents by storing MACs in a DictionaryValue. The 21// DictionaryValue is presumed to be the contents of a PrefStore. 22// RegisterProfilePrefs() may be used to register all of the preferences used by 23// this object. 24class DictionaryHashStoreContents : public HashStoreContents { 25 public: 26 // Constructs a DictionaryHashStoreContents that reads from and writes to 27 // |storage|. 28 explicit DictionaryHashStoreContents(base::DictionaryValue* storage); 29 30 // Registers required preferences. 31 static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); 32 33 // HashStoreContents implementation 34 virtual std::string hash_store_id() const OVERRIDE; 35 virtual void Reset() OVERRIDE; 36 virtual bool IsInitialized() const OVERRIDE; 37 virtual const base::DictionaryValue* GetContents() const OVERRIDE; 38 virtual scoped_ptr<MutableDictionary> GetMutableContents() OVERRIDE; 39 virtual std::string GetSuperMac() const OVERRIDE; 40 virtual void SetSuperMac(const std::string& super_mac) OVERRIDE; 41 42 private: 43 base::DictionaryValue* storage_; 44 45 DISALLOW_COPY_AND_ASSIGN(DictionaryHashStoreContents); 46}; 47 48#endif // CHROME_BROWSER_PREFS_TRACKED_DICTIONARY_HASH_STORE_CONTENTS_H_ 49