1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_SYNC_DRIVER_SHARED_CHANGE_PROCESSOR_H_REF_H_ 6 #define COMPONENTS_SYNC_DRIVER_SHARED_CHANGE_PROCESSOR_H_REF_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/memory/ref_counted.h" 10 #include "components/sync_driver/shared_change_processor.h" 11 #include "sync/api/sync_change_processor.h" 12 #include "sync/api/sync_error_factory.h" 13 14 namespace sync_driver { 15 16 // A syncer::SyncChangeProcessor stub for interacting with a refcounted 17 // SharedChangeProcessor. 18 class SharedChangeProcessorRef : public syncer::SyncChangeProcessor, 19 public syncer::SyncErrorFactory { 20 public: 21 SharedChangeProcessorRef( 22 const scoped_refptr<SharedChangeProcessor>& 23 change_processor); 24 virtual ~SharedChangeProcessorRef(); 25 26 // syncer::SyncChangeProcessor implementation. 27 virtual syncer::SyncError ProcessSyncChanges( 28 const tracked_objects::Location& from_here, 29 const syncer::SyncChangeList& change_list) OVERRIDE; 30 virtual syncer::SyncDataList GetAllSyncData( 31 syncer::ModelType type) const OVERRIDE; 32 virtual syncer::SyncError UpdateDataTypeContext( 33 syncer::ModelType type, 34 syncer::SyncChangeProcessor::ContextRefreshStatus refresh_status, 35 const std::string& context) OVERRIDE; 36 37 // syncer::SyncErrorFactory implementation. 38 virtual syncer::SyncError CreateAndUploadError( 39 const tracked_objects::Location& from_here, 40 const std::string& message) OVERRIDE; 41 42 // Default copy and assign welcome (and safe due to refcounted-ness). 43 44 private: 45 scoped_refptr<SharedChangeProcessor> change_processor_; 46 }; 47 48 } // namespace sync_driver 49 50 #endif // COMPONENTS_SYNC_DRIVER_SHARED_CHANGE_PROCESSOR_H_REF_H_ 51