From ea587b01337fd38626923e48258a2b39a631543a Mon Sep 17 00:00:00 2001 From: "sanjeevr@chromium.org" Date: Fri, 21 May 2010 15:01:35 +0000 Subject: Removed dependency on ChromeThread from JsonPrefStore and moved JsonPrefStore and PrefStore to chrome/common. This is because JsonPrefStore is needed in the service process BUG=None. TEST=Updated unit-tests Review URL: http://codereview.chromium.org/2066015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47915 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/common/json_pref_store.h | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 chrome/common/json_pref_store.h (limited to 'chrome/common/json_pref_store.h') diff --git a/chrome/common/json_pref_store.h b/chrome/common/json_pref_store.h new file mode 100644 index 0000000..70f5dee --- /dev/null +++ b/chrome/common/json_pref_store.h @@ -0,0 +1,56 @@ +// 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_COMMON_JSON_PREF_STORE_H_ +#define CHROME_COMMON_JSON_PREF_STORE_H_ + +#include + +#include "base/scoped_ptr.h" +#include "chrome/common/pref_store.h" +#include "chrome/common/important_file_writer.h" + +namespace base { +class MessageLoopProxy; +} + +class DictionaryValue; +class FilePath; + +class JsonPrefStore : public PrefStore, + public ImportantFileWriter::DataSerializer { + public: + // |file_message_loop_proxy| is the MessageLoopProxy for a thread on which + // file I/O can be done. + JsonPrefStore(const FilePath& pref_filename, + base::MessageLoopProxy* file_message_loop_proxy); + virtual ~JsonPrefStore(); + + // PrefStore methods: + virtual bool ReadOnly() { return read_only_; } + + virtual DictionaryValue* prefs() { return prefs_.get(); } + + virtual PrefReadError ReadPrefs(); + + virtual bool WritePrefs(); + + virtual void ScheduleWritePrefs(); + + // ImportantFileWriter::DataSerializer methods: + virtual bool SerializeData(std::string* data); + + private: + FilePath path_; + + scoped_ptr prefs_; + + bool read_only_; + + // Helper for safely writing pref data. + ImportantFileWriter writer_; +}; + +#endif // CHROME_COMMON_JSON_PREF_STORE_H_ + -- cgit v1.1