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..90ba2caf05430c022f5788224e1ccda207986749 100644 |
--- a/sync/api/model_type_service.h |
+++ b/sync/api/model_type_service.h |
@@ -15,11 +15,13 @@ |
#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 { |
class DataBatch; |
class MetadataChangeList; |
+class SharedModelTypeProcessor; |
// Interface implemented by model types to receive updates from sync via the |
// SharedModelTypeProcessor. Provides a way for sync to update the data and |
@@ -29,8 +31,14 @@ 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)> |
+ SharedProcessorFactory; |
maxbogue
2016/03/22 21:40:12
Please call this ChangeProcessorFactory. ModelType
Gang Wu
2016/03/24 15:56:26
Done.
|
+ typedef base::Callback<void(syncer::SyncError, scoped_ptr<ActivationContext>)> |
+ StartCallback; |
- ModelTypeService(); |
+ ModelTypeService(const SharedProcessorFactory& shared_processor_factory); |
virtual ~ModelTypeService(); |
@@ -78,17 +86,23 @@ class SYNC_EXPORT ModelTypeService { |
// it to the processor. |
virtual void OnChangeProcessorSet() = 0; |
+ // Model type for this service. |
+ virtual syncer::ModelType type() const = 0; |
+ |
// TODO(skym): See crbug/547087, do we need all these accessors? |
ModelTypeChangeProcessor* change_processor() const; |
- void set_change_processor( |
- scoped_ptr<ModelTypeChangeProcessor> change_processor); |
- |
void clear_change_processor(); |
+ void OnSyncStarting(const StartCallback& callback); |
maxbogue
2016/03/22 21:40:12
I think you should be returning ModelTypeChangePro
Gang Wu
2016/03/24 15:56:26
Done.
|
+ |
+ protected: |
+ ModelTypeChangeProcessor* create_change_processor(); |
+ |
private: |
- // Recieves ownership in set_change_processor(...). |
scoped_ptr<ModelTypeChangeProcessor> change_processor_; |
+ |
+ SharedProcessorFactory shared_processor_factory_; |
}; |
} // namespace syncer_v2 |