uninstall_app_task.h revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_UNINSTALL_APP_TASK_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_UNINSTALL_APP_TASK_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include <string> 9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/weak_ptr.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync_file_system/drive_backend/sync_task.h" 13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "chrome/browser/sync_file_system/remote_file_sync_service.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync_file_system/sync_callbacks.h" 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "google_apis/drive/gdata_errorcode.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace drive { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DriveServiceInterface; 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 20a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace google_apis { 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class ResourceEntry; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ResourceList; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace sync_file_system { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace drive_backend { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class FileTracker; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MetadataDatabase; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SyncEngineContext; 32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)class TrackerSet; 33a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 34a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)class UninstallAppTask : public SequentialSyncTask { 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 36a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) typedef RemoteFileSyncService::UninstallFlag UninstallFlag; 37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) UninstallAppTask(SyncEngineContext* sync_context, 38a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const std::string& app_id, 39a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) UninstallFlag uninstall_flag); 40d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual ~UninstallAppTask(); 41d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RunSequential(const SyncStatusCallback& callback) OVERRIDE; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) void DidDeleteAppRoot(const SyncStatusCallback& callback, 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) int64 change_id, 47a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) google_apis::GDataErrorCode error); 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool IsContextReady(); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MetadataDatabase* metadata_database(); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) drive::DriveServiceInterface* drive_service(); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SyncEngineContext* sync_context_; // Not owned. 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 55a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) std::string app_id_; 567d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) UninstallFlag uninstall_flag_; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 app_root_tracker_id_; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::WeakPtrFactory<UninstallAppTask> weak_ptr_factory_; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(UninstallAppTask); 62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 63a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 647d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace drive_backend 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace sync_file_system 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_UNINSTALL_APP_TASK_H_ 68f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)