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
3 // found in the LICENSE file.
5 // A utility class for accessing and caching registry preferences that take
6 // the form of lists of strings.
7 // TODO(robertshield): Use the RegistryWatcher stuff to keep this list up to
10 #ifndef CHROME_FRAME_REGISTRY_LIST_PREFERENCES_HOLDER_H_
11 #define CHROME_FRAME_REGISTRY_LIST_PREFERENCES_HOLDER_H_
17 #include "base/strings/string16.h"
19 class RegistryListPreferencesHolder
{
21 RegistryListPreferencesHolder();
23 // Initializes the RegistryListPreferencesHolder using the values stored
24 // under the key |list_name| stored at |registry_path| under |hive|.
26 const wchar_t* registry_path
,
27 const wchar_t* list_name
);
29 bool Valid() const { return valid_
; }
31 // Returns true iff |string| matches any of the strings in values_, using the
32 // matching logic in base's MatchPattern().
33 bool ListMatches(const string16
& string
) const;
35 // Manually add a string to values_ for testing purposes.
36 void AddStringForTesting(const string16
& string
);
38 // Reset the holder causing it to be re-initialized, for testing purposes
40 // TODO(robertshield): Remove this once the RegistryWatcher stuff is wired up.
41 void ResetForTesting();
44 std::vector
<string16
> values_
;
47 DISALLOW_COPY_AND_ASSIGN(RegistryListPreferencesHolder
);
50 #endif // CHROME_FRAME_REGISTRY_LIST_PREFERENCES_HOLDER_H_