Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / components / sync_driver / shared_change_processor_ref.h
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_