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 |