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_UPLOADER_WRAPPER_H_ 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_UPLOADER_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_uploader.h" 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace sync_file_system { 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace drive_backend { 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// This class wraps a part of DriveUploaderInterface class to support weak 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// pointer. Each method wraps corresponding name method of 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// DriveUploaderInterface. See comments in drive_uploader_interface.h 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// for details. 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass DriveUploaderWrapper 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : public base::SupportsWeakPtr<DriveUploaderWrapper> { 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public: 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu explicit DriveUploaderWrapper(drive::DriveUploaderInterface* drive_uploader); 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void UploadExistingFile( 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& resource_id, 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::FilePath& local_file_path, 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& content_type, 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const drive::DriveUploaderInterface::UploadExistingFileOptions& options, 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const drive::UploadCompletionCallback& callback); 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void UploadNewFile( 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& parent_resource_id, 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::FilePath& local_file_path, 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& title, 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const std::string& content_type, 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const drive::DriveUploaderInterface::UploadNewFileOptions& options, 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const drive::UploadCompletionCallback& callback); 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu private: 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu drive::DriveUploaderInterface* drive_uploader_; 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::SequenceChecker sequence_checker_; 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DISALLOW_COPY_AND_ASSIGN(DriveUploaderWrapper); 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}; 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace drive_backend 475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace sync_file_system 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_DRIVE_UPLOADER_WRAPPER_H_ 50