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