| OLD | NEW | 
|   1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |   1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|   2 // Use of this source code is governed by a BSD-style license that can be |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4  |   4  | 
|   5 #ifndef COMPONENTS_PREFS_DEFAULT_PREF_STORE_H_ |   5 #ifndef COMPONENTS_PREFS_DEFAULT_PREF_STORE_H_ | 
|   6 #define COMPONENTS_PREFS_DEFAULT_PREF_STORE_H_ |   6 #define COMPONENTS_PREFS_DEFAULT_PREF_STORE_H_ | 
|   7  |   7  | 
|   8 #include <memory> |  | 
|   9 #include <string> |   8 #include <string> | 
|  10  |   9  | 
|  11 #include "base/macros.h" |  10 #include "base/macros.h" | 
|  12 #include "base/observer_list.h" |  11 #include "base/observer_list.h" | 
|  13 #include "base/values.h" |  12 #include "base/values.h" | 
|  14 #include "components/prefs/base_prefs_export.h" |  13 #include "components/prefs/base_prefs_export.h" | 
|  15 #include "components/prefs/pref_store.h" |  14 #include "components/prefs/pref_store.h" | 
|  16 #include "components/prefs/pref_value_map.h" |  15 #include "components/prefs/pref_value_map.h" | 
|  17  |  16  | 
|  18 // Used within a PrefRegistry to keep track of default preference values. |  17 // Used within a PrefRegistry to keep track of default preference values. | 
|  19 class COMPONENTS_PREFS_EXPORT DefaultPrefStore : public PrefStore { |  18 class COMPONENTS_PREFS_EXPORT DefaultPrefStore : public PrefStore { | 
|  20  public: |  19  public: | 
|  21   typedef PrefValueMap::const_iterator const_iterator; |  20   typedef PrefValueMap::const_iterator const_iterator; | 
|  22  |  21  | 
|  23   DefaultPrefStore(); |  22   DefaultPrefStore(); | 
|  24  |  23  | 
|  25   // PrefStore implementation: |  24   // PrefStore implementation: | 
|  26   bool GetValue(const std::string& key, |  25   bool GetValue(const std::string& key, | 
|  27                 const base::Value** result) const override; |  26                 const base::Value** result) const override; | 
|  28   std::unique_ptr<base::DictionaryValue> GetValues() const override; |  | 
|  29   void AddObserver(PrefStore::Observer* observer) override; |  27   void AddObserver(PrefStore::Observer* observer) override; | 
|  30   void RemoveObserver(PrefStore::Observer* observer) override; |  28   void RemoveObserver(PrefStore::Observer* observer) override; | 
|  31   bool HasObservers() const override; |  29   bool HasObservers() const override; | 
|  32  |  30  | 
|  33   // Sets a |value| for |key|. Should only be called if a value has not been |  31   // Sets a |value| for |key|. Should only be called if a value has not been | 
|  34   // set yet; otherwise call ReplaceDefaultValue(). |  32   // set yet; otherwise call ReplaceDefaultValue(). | 
|  35   void SetDefaultValue(const std::string& key, |  33   void SetDefaultValue(const std::string& key, | 
|  36                        std::unique_ptr<base::Value> value); |  34                        std::unique_ptr<base::Value> value); | 
|  37  |  35  | 
|  38   // Replaces the the value for |key| with a new value. Should only be called |  36   // Replaces the the value for |key| with a new value. Should only be called | 
|  39   // if a value has alreday been set; otherwise call SetDefaultValue(). |  37   // if a value has alreday been set; otherwise call SetDefaultValue(). | 
|  40   void ReplaceDefaultValue(const std::string& key, |  38   void ReplaceDefaultValue(const std::string& key, | 
|  41                            std::unique_ptr<base::Value> value); |  39                            std::unique_ptr<base::Value> value); | 
|  42  |  40  | 
|  43   const_iterator begin() const; |  41   const_iterator begin() const; | 
|  44   const_iterator end() const; |  42   const_iterator end() const; | 
|  45  |  43  | 
|  46  private: |  44  private: | 
|  47   ~DefaultPrefStore() override; |  45   ~DefaultPrefStore() override; | 
|  48  |  46  | 
|  49   PrefValueMap prefs_; |  47   PrefValueMap prefs_; | 
|  50  |  48  | 
|  51   base::ObserverList<PrefStore::Observer, true> observers_; |  49   base::ObserverList<PrefStore::Observer, true> observers_; | 
|  52  |  50  | 
|  53   DISALLOW_COPY_AND_ASSIGN(DefaultPrefStore); |  51   DISALLOW_COPY_AND_ASSIGN(DefaultPrefStore); | 
|  54 }; |  52 }; | 
|  55  |  53  | 
|  56 #endif  // COMPONENTS_PREFS_DEFAULT_PREF_STORE_H_ |  54 #endif  // COMPONENTS_PREFS_DEFAULT_PREF_STORE_H_ | 
| OLD | NEW |