• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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