OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "components/sync/api/model_type_service.h" | 5 #include "components/sync/api/model_type_service.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 namespace syncer_v2 { | 9 namespace syncer { |
10 | 10 |
11 ModelTypeService::ModelTypeService( | 11 ModelTypeService::ModelTypeService( |
12 const ChangeProcessorFactory& change_processor_factory, | 12 const ChangeProcessorFactory& change_processor_factory, |
13 syncer::ModelType type) | 13 ModelType type) |
14 : change_processor_factory_(change_processor_factory), type_(type) {} | 14 : change_processor_factory_(change_processor_factory), type_(type) {} |
15 | 15 |
16 ModelTypeService::~ModelTypeService() {} | 16 ModelTypeService::~ModelTypeService() {} |
17 | 17 |
18 ConflictResolution ModelTypeService::ResolveConflict( | 18 ConflictResolution ModelTypeService::ResolveConflict( |
19 const EntityData& local_data, | 19 const EntityData& local_data, |
20 const EntityData& remote_data) const { | 20 const EntityData& remote_data) const { |
21 // TODO(maxbogue): Add tests once a file exists for them (crbug.com/543407). | 21 // TODO(maxbogue): Add tests once a file exists for them (crbug.com/543407). |
22 if (remote_data.is_deleted()) { | 22 if (remote_data.is_deleted()) { |
23 DCHECK(!local_data.is_deleted()); | 23 DCHECK(!local_data.is_deleted()); |
24 return ConflictResolution::UseLocal(); | 24 return ConflictResolution::UseLocal(); |
25 } | 25 } |
26 return ConflictResolution::UseRemote(); | 26 return ConflictResolution::UseRemote(); |
27 } | 27 } |
28 | 28 |
29 void ModelTypeService::OnSyncStarting( | 29 void ModelTypeService::OnSyncStarting( |
30 std::unique_ptr<syncer::DataTypeErrorHandler> error_handler, | 30 std::unique_ptr<DataTypeErrorHandler> error_handler, |
31 const ModelTypeChangeProcessor::StartCallback& start_callback) { | 31 const ModelTypeChangeProcessor::StartCallback& start_callback) { |
32 CreateChangeProcessor(); | 32 CreateChangeProcessor(); |
33 change_processor_->OnSyncStarting(std::move(error_handler), start_callback); | 33 change_processor_->OnSyncStarting(std::move(error_handler), start_callback); |
34 } | 34 } |
35 | 35 |
36 void ModelTypeService::DisableSync() { | 36 void ModelTypeService::DisableSync() { |
37 DCHECK(change_processor_); | 37 DCHECK(change_processor_); |
38 change_processor_->DisableSync(); | 38 change_processor_->DisableSync(); |
39 change_processor_.reset(); | 39 change_processor_.reset(); |
40 } | 40 } |
41 | 41 |
42 void ModelTypeService::CreateChangeProcessor() { | 42 void ModelTypeService::CreateChangeProcessor() { |
43 if (!change_processor_) { | 43 if (!change_processor_) { |
44 change_processor_ = change_processor_factory_.Run(type_, this); | 44 change_processor_ = change_processor_factory_.Run(type_, this); |
45 DCHECK(change_processor_); | 45 DCHECK(change_processor_); |
46 OnChangeProcessorSet(); | 46 OnChangeProcessorSet(); |
47 } | 47 } |
48 } | 48 } |
49 | 49 |
50 ModelTypeChangeProcessor* ModelTypeService::change_processor() const { | 50 ModelTypeChangeProcessor* ModelTypeService::change_processor() const { |
51 return change_processor_.get(); | 51 return change_processor_.get(); |
52 } | 52 } |
53 | 53 |
54 void ModelTypeService::clear_change_processor() { | 54 void ModelTypeService::clear_change_processor() { |
55 change_processor_.reset(); | 55 change_processor_.reset(); |
56 } | 56 } |
57 | 57 |
58 } // namespace syncer_v2 | 58 } // namespace syncer |
OLD | NEW |