1 // Copyright 2013 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 #ifndef BASE_PREFS_PREF_SERVICE_FACTORY_H_
6 #define BASE_PREFS_PREF_SERVICE_FACTORY_H_
8 #include "base/basictypes.h"
9 #include "base/callback.h"
10 #include "base/memory/ref_counted.h"
11 #include "base/prefs/base_prefs_export.h"
12 #include "base/prefs/persistent_pref_store.h"
13 #include "base/prefs/pref_registry.h"
14 #include "base/prefs/pref_store.h"
21 class SequencedTaskRunner
;
23 // A class that allows convenient building of PrefService.
24 class BASE_PREFS_EXPORT PrefServiceFactory
{
27 virtual ~PrefServiceFactory();
29 // Functions for setting the various parameters of the PrefService to build.
30 void set_managed_prefs(const scoped_refptr
<PrefStore
>& managed_prefs
) {
31 managed_prefs_
= managed_prefs
;
33 void set_supervised_user_prefs(
34 const scoped_refptr
<PrefStore
>& supervised_user_prefs
) {
35 supervised_user_prefs_
= supervised_user_prefs
;
37 void set_extension_prefs(const scoped_refptr
<PrefStore
>& extension_prefs
) {
38 extension_prefs_
= extension_prefs
;
40 void set_command_line_prefs(
41 const scoped_refptr
<PrefStore
>& command_line_prefs
) {
42 command_line_prefs_
= command_line_prefs
;
44 void set_user_prefs(const scoped_refptr
<PersistentPrefStore
>& user_prefs
) {
45 user_prefs_
= user_prefs
;
47 void set_recommended_prefs(
48 const scoped_refptr
<PrefStore
>& recommended_prefs
) {
49 recommended_prefs_
= recommended_prefs
;
52 // Sets up error callback for the PrefService. A do-nothing default
53 // is provided if this is not called.
54 void set_read_error_callback(
55 const base::Callback
<void(PersistentPrefStore::PrefReadError
)>&
56 read_error_callback
) {
57 read_error_callback_
= read_error_callback
;
60 // Specifies to use an actual file-backed user pref store.
61 void SetUserPrefsFile(const base::FilePath
& prefs_file
,
62 base::SequencedTaskRunner
* task_runner
);
64 void set_async(bool async
) {
68 // Creates a PrefService object initialized with the parameters from
70 scoped_ptr
<PrefService
> Create(PrefRegistry
* registry
);
73 scoped_refptr
<PrefStore
> managed_prefs_
;
74 scoped_refptr
<PrefStore
> supervised_user_prefs_
;
75 scoped_refptr
<PrefStore
> extension_prefs_
;
76 scoped_refptr
<PrefStore
> command_line_prefs_
;
77 scoped_refptr
<PersistentPrefStore
> user_prefs_
;
78 scoped_refptr
<PrefStore
> recommended_prefs_
;
80 base::Callback
<void(PersistentPrefStore::PrefReadError
)> read_error_callback_
;
86 DISALLOW_COPY_AND_ASSIGN(PrefServiceFactory
);
91 #endif // BASE_PREFS_PREF_SERVICE_FACTORY_H_