| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_PREFS_PREF_MODEL_ASSOCIATOR_H_ | 5 #ifndef CHROME_BROWSER_PREFS_PREF_MODEL_ASSOCIATOR_H_ |
| 6 #define CHROME_BROWSER_PREFS_PREF_MODEL_ASSOCIATOR_H_ | 6 #define CHROME_BROWSER_PREFS_PREF_MODEL_ASSOCIATOR_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "base/compiler_specific.h" | 13 #include "base/compiler_specific.h" |
| 14 #include "base/threading/non_thread_safe.h" | 14 #include "base/threading/non_thread_safe.h" |
| 15 #include "chrome/browser/prefs/pref_service.h" | |
| 16 #include "sync/api/sync_data.h" | 15 #include "sync/api/sync_data.h" |
| 17 #include "sync/api/syncable_service.h" | 16 #include "sync/api/syncable_service.h" |
| 18 | 17 |
| 18 class PrefServiceSyncable; |
| 19 |
| 19 namespace sync_pb { | 20 namespace sync_pb { |
| 20 class PreferenceSpecifics; | 21 class PreferenceSpecifics; |
| 21 } | 22 } |
| 22 | 23 |
| 23 namespace base { | 24 namespace base { |
| 24 class Value; | 25 class Value; |
| 25 } | 26 } |
| 26 | 27 |
| 27 // Contains all preference sync related logic. | 28 // Contains all preference sync related logic. |
| 28 // TODO(sync): Merge this into PrefService once we separate the profile | 29 // TODO(sync): Merge this into PrefService once we separate the profile |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 virtual bool IsPrefRegistered(const char* name); | 66 virtual bool IsPrefRegistered(const char* name); |
| 66 | 67 |
| 67 // Unregisters a previously registered preference. This must be called | 68 // Unregisters a previously registered preference. This must be called |
| 68 // prior to making the first sync. | 69 // prior to making the first sync. |
| 69 virtual void UnregisterPref(const char* name); | 70 virtual void UnregisterPref(const char* name); |
| 70 | 71 |
| 71 // Process a local preference change. This can trigger new SyncChanges being | 72 // Process a local preference change. This can trigger new SyncChanges being |
| 72 // sent to the syncer. | 73 // sent to the syncer. |
| 73 virtual void ProcessPrefChange(const std::string& name); | 74 virtual void ProcessPrefChange(const std::string& name); |
| 74 | 75 |
| 75 void SetPrefService(PrefService* pref_service); | 76 void SetPrefService(PrefServiceSyncable* pref_service); |
| 76 | 77 |
| 77 // Merges the local_value into the supplied server_value and returns | 78 // Merges the local_value into the supplied server_value and returns |
| 78 // the result (caller takes ownership). If there is a conflict, the server | 79 // the result (caller takes ownership). If there is a conflict, the server |
| 79 // value always takes precedence. Note that only certain preferences will | 80 // value always takes precedence. Note that only certain preferences will |
| 80 // actually be merged, all others will return a copy of the server value. See | 81 // actually be merged, all others will return a copy of the server value. See |
| 81 // the method's implementation for details. | 82 // the method's implementation for details. |
| 82 static scoped_ptr<base::Value> MergePreference( | 83 static scoped_ptr<base::Value> MergePreference( |
| 83 const std::string& name, | 84 const std::string& name, |
| 84 const base::Value& local_value, | 85 const base::Value& local_value, |
| 85 const base::Value& server_value); | 86 const base::Value& server_value); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 // The preferences that are currently synced (excludes those preferences | 137 // The preferences that are currently synced (excludes those preferences |
| 137 // that have never had sync data and currently have default values or are | 138 // that have never had sync data and currently have default values or are |
| 138 // policy controlled). | 139 // policy controlled). |
| 139 // Note: this set never decreases, only grows to eventually match | 140 // Note: this set never decreases, only grows to eventually match |
| 140 // registered_preferences_ as more preferences are synced. It determines | 141 // registered_preferences_ as more preferences are synced. It determines |
| 141 // whether a preference change should update an existing sync node or create | 142 // whether a preference change should update an existing sync node or create |
| 142 // a new sync node. | 143 // a new sync node. |
| 143 PreferenceSet synced_preferences_; | 144 PreferenceSet synced_preferences_; |
| 144 | 145 |
| 145 // The PrefService we are syncing to. | 146 // The PrefService we are syncing to. |
| 146 PrefService* pref_service_; | 147 PrefServiceSyncable* pref_service_; |
| 147 | 148 |
| 148 // Sync's syncer::SyncChange handler. We push all our changes through this. | 149 // Sync's syncer::SyncChange handler. We push all our changes through this. |
| 149 scoped_ptr<syncer::SyncChangeProcessor> sync_processor_; | 150 scoped_ptr<syncer::SyncChangeProcessor> sync_processor_; |
| 150 | 151 |
| 151 // Sync's error handler. We use this to create sync errors. | 152 // Sync's error handler. We use this to create sync errors. |
| 152 scoped_ptr<syncer::SyncErrorFactory> sync_error_factory_; | 153 scoped_ptr<syncer::SyncErrorFactory> sync_error_factory_; |
| 153 | 154 |
| 154 DISALLOW_COPY_AND_ASSIGN(PrefModelAssociator); | 155 DISALLOW_COPY_AND_ASSIGN(PrefModelAssociator); |
| 155 }; | 156 }; |
| 156 | 157 |
| 157 #endif // CHROME_BROWSER_PREFS_PREF_MODEL_ASSOCIATOR_H_ | 158 #endif // CHROME_BROWSER_PREFS_PREF_MODEL_ASSOCIATOR_H_ |
| OLD | NEW |