Chromium Code Reviews| Index: components/sync/model/recording_model_type_change_processor.cc |
| diff --git a/components/sync/model/recording_model_type_change_processor.cc b/components/sync/model/recording_model_type_change_processor.cc |
| index 0d379747de9e855cecb81cc841c8de0dd28c7620..bf4dc8d05ca8767de3cf6f668c68560df5d70e05 100644 |
| --- a/components/sync/model/recording_model_type_change_processor.cc |
| +++ b/components/sync/model/recording_model_type_change_processor.cc |
| @@ -6,10 +6,27 @@ |
| #include <utility> |
| +#include "base/bind.h" |
| +#include "base/memory/ptr_util.h" |
| #include "components/sync/model/metadata_batch.h" |
| namespace syncer { |
| +namespace { |
| + |
| +std::unique_ptr<ModelTypeChangeProcessor> SideAssignNewProcessor( |
|
Patrick Noland
2017/05/04 19:43:18
Given that this
1) creates a new processor
2) retu
skym
2017/05/04 20:33:59
As discussed offline, changing to CreateAndAssignP
|
| + RecordingModelTypeChangeProcessor** processor_address, |
| + ModelType type, |
| + ModelTypeSyncBridge* bridge) { |
| + auto processor = base::MakeUnique<RecordingModelTypeChangeProcessor>(); |
| + *processor_address = processor.get(); |
| + // Not all compilers are smart enough to up cast during copy elision, so we |
| + // explicitly std::move to help them out. |
| + return std::move(processor); |
| +} |
| + |
| +} // namespace |
| + |
| RecordingModelTypeChangeProcessor::RecordingModelTypeChangeProcessor() {} |
| RecordingModelTypeChangeProcessor::~RecordingModelTypeChangeProcessor() {} |
| @@ -41,4 +58,12 @@ void RecordingModelTypeChangeProcessor::SetIsTrackingMetadata( |
| is_tracking_metadata_ = is_tracking; |
| } |
| +// static |
| +ModelTypeSyncBridge::ChangeProcessorFactory |
| +RecordingModelTypeChangeProcessor::FactoryForBridgeTest( |
| + RecordingModelTypeChangeProcessor** processor_address) { |
| + return base::Bind(&SideAssignNewProcessor, |
| + base::Unretained(processor_address)); |
| +} |
| + |
| } // namespace syncer |