summaryrefslogtreecommitdiff
path: root/chromium/services/preferences/tracked/registry_hash_store_contents_win.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/services/preferences/tracked/registry_hash_store_contents_win.h')
-rw-r--r--chromium/services/preferences/tracked/registry_hash_store_contents_win.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/chromium/services/preferences/tracked/registry_hash_store_contents_win.h b/chromium/services/preferences/tracked/registry_hash_store_contents_win.h
new file mode 100644
index 00000000000..34496f97cec
--- /dev/null
+++ b/chromium/services/preferences/tracked/registry_hash_store_contents_win.h
@@ -0,0 +1,49 @@
+// 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 SERVICES_PREFERENCES_TRACKED_REGISTRY_HASH_STORE_CONTENTS_WIN_H_
+#define SERVICES_PREFERENCES_TRACKED_REGISTRY_HASH_STORE_CONTENTS_WIN_H_
+
+#include "base/macros.h"
+#include "base/strings/string16.h"
+#include "services/preferences/tracked/hash_store_contents.h"
+
+// Implements HashStoreContents by storing MACs in the Windows registry.
+class RegistryHashStoreContentsWin : public HashStoreContents {
+ public:
+ // Constructs a RegistryHashStoreContents which acts on a registry entry
+ // defined by |registry_path| and |store_key|.
+ explicit RegistryHashStoreContentsWin(const base::string16& registry_path,
+ const base::string16& store_key);
+
+ // HashStoreContents overrides:
+ bool IsCopyable() const override;
+ std::unique_ptr<HashStoreContents> MakeCopy() const override;
+ base::StringPiece GetUMASuffix() const override;
+ void Reset() override;
+ bool GetMac(const std::string& path, std::string* out_value) override;
+ bool GetSplitMacs(const std::string& path,
+ std::map<std::string, std::string>* split_macs) override;
+ void SetMac(const std::string& path, const std::string& value) override;
+ void SetSplitMac(const std::string& path,
+ const std::string& split_path,
+ const std::string& value) override;
+ bool RemoveEntry(const std::string& path) override;
+
+ // Unsupported HashStoreContents overrides:
+ void ImportEntry(const std::string& path,
+ const base::Value* in_value) override;
+ const base::DictionaryValue* GetContents() const override;
+ std::string GetSuperMac() const override;
+ void SetSuperMac(const std::string& super_mac) override;
+
+ private:
+ // Helper constructor for |MakeCopy|.
+ explicit RegistryHashStoreContentsWin(
+ const RegistryHashStoreContentsWin& other);
+
+ const base::string16 preference_key_name_;
+};
+
+#endif // SERVICES_PREFERENCES_TRACKED_REGISTRY_HASH_STORE_CONTENTS_WIN_H_