list_changes_task.h revision 0529e5d033099cbfc42635f6f6183833b09dff6e
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) 5bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_LIST_CHANGES_TASK_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_LIST_CHANGES_TASK_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 89ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/memory/scoped_ptr.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_vector.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/weak_ptr.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/sync_file_system/drive_backend/sync_task.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "google_apis/drive/gdata_errorcode.h" 1358e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace drive { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DriveServiceInterface; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace google_apis { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ChangeResource; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ResourceList; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace sync_file_system { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace drive_backend { 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MetadataDatabase; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SyncEngineContext; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ListChangesTask : public SyncTask { 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) explicit ListChangesTask(SyncEngineContext* sync_context); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~ListChangesTask(); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RunPreflight(scoped_ptr<SyncTaskToken> token) OVERRIDE; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 36bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch private: 37bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch void StartListing(scoped_ptr<SyncTaskToken> token); 38bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch void DidListChanges(scoped_ptr<SyncTaskToken> token, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) google_apis::GDataErrorCode error, 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<google_apis::ResourceList> resource_list); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CheckInChangeList(int64 largest_change_id, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<SyncTaskToken> token); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool IsContextReady(); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MetadataDatabase* metadata_database(); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) drive::DriveServiceInterface* drive_service(); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SyncEngineContext* sync_context_; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ScopedVector<google_apis::ChangeResource> change_list_; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::WeakPtrFactory<ListChangesTask> weak_ptr_factory_; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ListChangesTask); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace drive_backend 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace sync_file_system 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_LIST_CHANGES_TASK_H_ 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)