15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_SERVICE_WRAPPER_H_ 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_SERVICE_WRAPPER_H_ 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/memory/weak_ptr.h" 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/sequence_checker.h" 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "chrome/browser/drive/drive_service_interface.h" 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace sync_file_system { 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace drive_backend { 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// This class wraps a part of DriveServiceInterface class to support weak 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// pointer. Each method wraps corresponding name method of 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// DriveServiceInterface. See comments in drive_service_interface.h 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// for details. 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass DriveServiceWrapper : public base::SupportsWeakPtr<DriveServiceWrapper> { 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public: 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu explicit DriveServiceWrapper(drive::DriveServiceInterface* drive_service); 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void AddNewDirectory( 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& parent_resource_id, 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& directory_title, 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const drive::DriveServiceInterface::AddNewDirectoryOptions& options, 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileResourceCallback& callback); 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void DeleteResource( 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& etag, 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::EntryActionCallback& callback); 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void DownloadFile( 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::FilePath& local_cache_path, 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::DownloadActionCallback& download_action_callback, 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::GetContentCallback& get_content_callback, 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::ProgressCallback& progress_callback); 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void GetAboutResource( 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::AboutResourceCallback& callback); 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void GetChangeList( 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu int64 start_changestamp, 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const google_apis::ChangeListCallback& callback); 475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void GetRemainingChangeList( 495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const GURL& next_link, 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const google_apis::ChangeListCallback& callback); 515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void GetRemainingFileList( 535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const GURL& next_link, 5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileListCallback& callback); 555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void GetFileResource( 575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileResourceCallback& callback); 595c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void GetFileListInDirectory( 615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& directory_resource_id, 6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileListCallback& callback); 63010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 645c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void RemoveResourceFromDirectory( 655c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& parent_resource_id, 665c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 675c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::EntryActionCallback& callback); 685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void SearchByTitle( 705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& title, 715c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& directory_resource_id, 7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileListCallback& callback); 735c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 745c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu private: 755c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive::DriveServiceInterface* drive_service_; 7646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::SequenceChecker sequece_checker_; 775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DISALLOW_COPY_AND_ASSIGN(DriveServiceWrapper); 795c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}; 805c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 815c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace drive_backend 825c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace sync_file_system 835c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 845c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_SERVICE_WRAPPER_H_ 85