Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / prefs / tracked / dictionary_hash_store_contents.h
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
12 namespace base {
13 class DictionaryValue;
14 }  // namespace base
15
16 namespace user_prefs {
17 class 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.
24 class 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   std::string hash_store_id() const override;
35   void Reset() override;
36   bool IsInitialized() const override;
37   const base::DictionaryValue* GetContents() const override;
38   scoped_ptr<MutableDictionary> GetMutableContents() override;
39   std::string GetSuperMac() const override;
40   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_