shared_change_processor_ref.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
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 14namespace sync_driver { 15 16// A syncer::SyncChangeProcessor stub for interacting with a refcounted 17// SharedChangeProcessor. 18class 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