| Index: chrome/browser/prefs/pref_value_map.h | 
| diff --git a/chrome/browser/prefs/pref_value_map.h b/chrome/browser/prefs/pref_value_map.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..26b621452a72fe9aa039e67456afd0a1b64be9e5 | 
| --- /dev/null | 
| +++ b/chrome/browser/prefs/pref_value_map.h | 
| @@ -0,0 +1,46 @@ | 
| +// Copyright (c) 2010 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 CHROME_BROWSER_PREFS_PREF_VALUE_MAP_H_ | 
| +#define CHROME_BROWSER_PREFS_PREF_VALUE_MAP_H_ | 
| +#pragma once | 
| + | 
| +#include <map> | 
| +#include <string> | 
| + | 
| +#include "base/basictypes.h" | 
| + | 
| +class Value; | 
| + | 
| +// A generic string to value map used by the PrefStore implementations. | 
| +class PrefValueMap { | 
| + public: | 
| +  PrefValueMap() {} | 
| +  virtual ~PrefValueMap(); | 
| + | 
| +  // Gets the value for |key| and stores it in |value|. Ownership remains with | 
| +  // the map. Returns true if a value is present. If not, |value| is not | 
| +  // touched. | 
| +  bool GetValue(const std::string& key, Value** value) const; | 
| + | 
| +  // Sets a new |value| for |key|. Takes ownership of |value|, which must be | 
| +  // non-NULL. Returns true if the value changed. | 
| +  bool SetValue(const std::string& key, Value* value); | 
| + | 
| +  // Removes the value for |key| from the map. Returns true if a value was | 
| +  // removed. | 
| +  bool RemoveValue(const std::string& key); | 
| + | 
| +  // Clears the map. | 
| +  void Clear(); | 
| + | 
| + private: | 
| +  typedef std::map<std::string, Value*> Map; | 
| + | 
| +  Map prefs_; | 
| + | 
| +  DISALLOW_COPY_AND_ASSIGN(PrefValueMap); | 
| +}; | 
| + | 
| +#endif  // CHROME_BROWSER_PREFS_PREF_VALUE_MAP_H_ | 
|  |