Index: sync/api/model_type_service.h |
diff --git a/sync/api/model_type_service.h b/sync/api/model_type_service.h |
index bba4211ffe47af84dfff1f733272dad5d594dcca..59579ad2c7f5f71708bb0f0a0b25972aceb63299 100644 |
--- a/sync/api/model_type_service.h |
+++ b/sync/api/model_type_service.h |
@@ -15,6 +15,7 @@ |
#include "sync/api/model_type_change_processor.h" |
#include "sync/api/sync_error.h" |
#include "sync/base/sync_export.h" |
+#include "sync/internal_api/public/activation_context.h" |
namespace syncer_v2 { |
@@ -29,8 +30,13 @@ class SYNC_EXPORT ModelTypeService { |
typedef base::Callback<void(syncer::SyncError, scoped_ptr<DataBatch>)> |
DataCallback; |
typedef std::vector<std::string> ClientTagList; |
+ typedef base::Callback<scoped_ptr<ModelTypeChangeProcessor>( |
+ syncer::ModelType, |
+ ModelTypeService* service)> |
+ ChangeProcessorFactory; |
- ModelTypeService(); |
+ ModelTypeService(const ChangeProcessorFactory& change_processor_factory, |
+ syncer::ModelType type); |
virtual ~ModelTypeService(); |
@@ -78,17 +84,26 @@ class SYNC_EXPORT ModelTypeService { |
// it to the processor. |
virtual void OnChangeProcessorSet() = 0; |
+ void clear_change_processor(); |
+ |
+ ModelTypeChangeProcessor* OnSyncStarting( |
+ const ModelTypeChangeProcessor::StartCallback& callback); |
+ |
+ protected: |
// TODO(skym): See crbug/547087, do we need all these accessors? |
ModelTypeChangeProcessor* change_processor() const; |
- void set_change_processor( |
- scoped_ptr<ModelTypeChangeProcessor> change_processor); |
+ ModelTypeChangeProcessor* GetOrCreateChangeProcessor(); |
- void clear_change_processor(); |
+ // Model type for this service. |
+ syncer::ModelType type() const; |
private: |
- // Recieves ownership in set_change_processor(...). |
scoped_ptr<ModelTypeChangeProcessor> change_processor_; |
+ |
+ ChangeProcessorFactory change_processor_factory_; |
+ |
+ const syncer::ModelType type_; |
}; |
} // namespace syncer_v2 |