| // Copyright (c) 2012 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. |
| |
| // A utility class for accessing and caching registry preferences that take |
| // the form of lists of strings. |
| // TODO(robertshield): Use the RegistryWatcher stuff to keep this list up to |
| // date. |
| |
| #ifndef CHROME_FRAME_REGISTRY_LIST_PREFERENCES_HOLDER_H_ |
| #define CHROME_FRAME_REGISTRY_LIST_PREFERENCES_HOLDER_H_ |
| |
| #include <windows.h> |
| |
| #include <vector> |
| |
| #include "base/strings/string16.h" |
| |
| class RegistryListPreferencesHolder { |
| public: |
| RegistryListPreferencesHolder(); |
| |
| // Initializes the RegistryListPreferencesHolder using the values stored |
| // under the key |list_name| stored at |registry_path| under |hive|. |
| void Init(HKEY hive, |
| const wchar_t* registry_path, |
| const wchar_t* list_name); |
| |
| bool Valid() const { return valid_; } |
| |
| // Returns true iff |string| matches any of the strings in values_, using the |
| // matching logic in base's MatchPattern(). |
| bool ListMatches(const string16& string) const; |
| |
| // Manually add a string to values_ for testing purposes. |
| void AddStringForTesting(const string16& string); |
| |
| // Reset the holder causing it to be re-initialized, for testing purposes |
| // only. |
| // TODO(robertshield): Remove this once the RegistryWatcher stuff is wired up. |
| void ResetForTesting(); |
| |
| private: |
| std::vector<string16> values_; |
| bool valid_; |
| |
| DISALLOW_COPY_AND_ASSIGN(RegistryListPreferencesHolder); |
| }; |
| |
| #endif // CHROME_FRAME_REGISTRY_LIST_PREFERENCES_HOLDER_H_ |