Home | History | Annotate | Download | only in internal_api
      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 SYNC_INTERNAL_API_SYNC_ROLLBACK_MANAGER_H_
      6 #define SYNC_INTERNAL_API_SYNC_ROLLBACK_MANAGER_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "sync/internal_api/sync_rollback_manager_base.h"
     12 
     13 class GURL;
     14 
     15 namespace syncer {
     16 
     17 // SyncRollbackManager restores user's data to pre-sync state using backup
     18 // DB created by SyncBackupManager.
     19 class SYNC_EXPORT_PRIVATE SyncRollbackManager : public SyncRollbackManagerBase {
     20  public:
     21   SyncRollbackManager();
     22   virtual ~SyncRollbackManager();
     23 
     24   // SyncManager implementation.
     25   virtual void Init(InitArgs* args) OVERRIDE;
     26   virtual void StartSyncingNormally(
     27       const ModelSafeRoutingInfo& routing_info) OVERRIDE;
     28 
     29  private:
     30   // Deletes specified entries in local model.
     31   SyncerError DeleteOnWorkerThread(ModelType type, std::vector<int64> handles);
     32 
     33   void NotifyRollbackDone();
     34 
     35   std::map<ModelSafeGroup, scoped_refptr<ModelSafeWorker> > workers_;
     36 
     37   SyncManager::ChangeDelegate* change_delegate_;
     38 
     39   // Types that can be rolled back.
     40   ModelTypeSet rollback_ready_types_;
     41 
     42   DISALLOW_COPY_AND_ASSIGN(SyncRollbackManager);
     43 };
     44 
     45 }  // namespace syncer
     46 
     47 #endif  // SYNC_INTERNAL_API_SYNC_ROLLBACK_MANAGER_H_
     48