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#include "chrome/browser/sync_file_system/drive_backend/drive_service_wrapper.h" 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include <string> 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/memory/weak_ptr.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 LiuDriveServiceWrapper::DriveServiceWrapper( 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive::DriveServiceInterface* drive_service) 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : drive_service_(drive_service) { 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DCHECK(drive_service_); 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::AddNewDirectory( 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& parent_resource_id, 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& directory_title, 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const drive::DriveServiceInterface::AddNewDirectoryOptions& options, 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileResourceCallback& callback) { 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->AddNewDirectory(parent_resource_id, 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu directory_title, 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu options, 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu callback); 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::DeleteResource( 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& etag, 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::EntryActionCallback& callback) { 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->DeleteResource(resource_id, 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu etag, 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu callback); 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::DownloadFile( 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::FilePath& local_cache_path, 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::DownloadActionCallback& download_action_callback, 475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::GetContentCallback& get_content_callback, 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::ProgressCallback& progress_callback) { 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->DownloadFile(local_cache_path, 515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu resource_id, 525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu download_action_callback, 535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu get_content_callback, 545c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu progress_callback); 555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::GetAboutResource( 585c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::AboutResourceCallback& callback) { 5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 605c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->GetAboutResource(callback); 615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 625c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 635c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::GetChangeList( 645c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu int64 start_changestamp, 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const google_apis::ChangeListCallback& callback) { 6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 675c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->GetChangeList(start_changestamp, callback); 685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::GetRemainingChangeList( 715c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const GURL& next_link, 72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const google_apis::ChangeListCallback& callback) { 7346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 745c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->GetRemainingChangeList(next_link, callback); 755c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::GetRemainingFileList( 785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const GURL& next_link, 7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileListCallback& callback) { 8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 815c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->GetRemainingFileList(next_link, callback); 825c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 835c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 8446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void DriveServiceWrapper::GetFileResource( 855c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 8646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileResourceCallback& callback) { 8746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 8846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) drive_service_->GetFileResource(resource_id, callback); 895c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 905c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 9146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)void DriveServiceWrapper::GetFileListInDirectory( 925c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& directory_resource_id, 9346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileListCallback& callback) { 9446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 9546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) drive_service_->GetFileListInDirectory(directory_resource_id, callback); 96010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 97010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 985c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::RemoveResourceFromDirectory( 995c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& parent_resource_id, 1005c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 1015c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const google_apis::EntryActionCallback& callback) { 10246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 1035c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->RemoveResourceFromDirectory( 1045c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu parent_resource_id, resource_id, callback); 1055c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 1065c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 1075c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid DriveServiceWrapper::SearchByTitle( 1085c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& title, 1095c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& directory_resource_id, 11046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const google_apis::FileListCallback& callback) { 11146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequece_checker_.CalledOnValidSequencedThread()); 1125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive_service_->SearchByTitle( 1135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu title, directory_resource_id, callback); 1145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 1155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 1165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace drive_backend 1175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace sync_file_system 118