Chromium Code Reviews| 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..2a52818fcdb2247f8d3289ccefa4f579e6320978 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; |
|
skym
2016/03/24 22:51:37
Remove.
Gang Wu
2016/03/25 02:07:00
Done.
|
| // 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,12 @@ 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); |
| virtual ~ModelTypeService(); |
| @@ -78,17 +84,24 @@ class SYNC_EXPORT ModelTypeService { |
| // it to the processor. |
| virtual void OnChangeProcessorSet() = 0; |
| + // Model type for this service. |
| + virtual syncer::ModelType type() const = 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); |
| - |
| - void clear_change_processor(); |
| + ModelTypeChangeProcessor* GetOrCreateChangeProcessor(); |
| private: |
| - // Recieves ownership in set_change_processor(...). |
| scoped_ptr<ModelTypeChangeProcessor> change_processor_; |
| + |
| + ChangeProcessorFactory change_processor_factory_; |
| }; |
| } // namespace syncer_v2 |