Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Side by Side Diff: chrome/browser/chromeos/drive/file_system/copy_operation.cc

Issue 16628003: drive: Remove FileCacheObserver::OnCacheCommitted (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix PinAndUnpin Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/drive/file_system/copy_operation.h" 5 #include "chrome/browser/chromeos/drive/file_system/copy_operation.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/task_runner_util.h" 10 #include "base/task_runner_util.h"
(...skipping 19 matching lines...) Expand all
30 // Copies a file from |src_file_path| to |dest_file_path| on the local 30 // Copies a file from |src_file_path| to |dest_file_path| on the local
31 // file system using file_util::CopyFile. 31 // file system using file_util::CopyFile.
32 // Returns FILE_ERROR_OK on success or FILE_ERROR_FAILED otherwise. 32 // Returns FILE_ERROR_OK on success or FILE_ERROR_FAILED otherwise.
33 FileError CopyLocalFileOnBlockingPool( 33 FileError CopyLocalFileOnBlockingPool(
34 const base::FilePath& src_file_path, 34 const base::FilePath& src_file_path,
35 const base::FilePath& dest_file_path) { 35 const base::FilePath& dest_file_path) {
36 return file_util::CopyFile(src_file_path, dest_file_path) ? 36 return file_util::CopyFile(src_file_path, dest_file_path) ?
37 FILE_ERROR_OK : FILE_ERROR_FAILED; 37 FILE_ERROR_OK : FILE_ERROR_FAILED;
38 } 38 }
39 39
40 // Stores a file to the cache and mark it dirty.
41 FileError StoreAndMarkDirty(internal::FileCache* cache,
42 const std::string& resource_id,
43 const std::string& md5,
44 const base::FilePath& local_file_path) {
45 FileError error = cache->Store(resource_id, md5, local_file_path,
46 internal::FileCache::FILE_OPERATION_COPY);
47 if (error != FILE_ERROR_OK)
48 return error;
49 return cache->MarkDirty(resource_id, md5);
50 }
51
40 } // namespace 52 } // namespace
41 53
42 CopyOperation::CopyOperation(base::SequencedTaskRunner* blocking_task_runner, 54 CopyOperation::CopyOperation(base::SequencedTaskRunner* blocking_task_runner,
43 OperationObserver* observer, 55 OperationObserver* observer,
44 JobScheduler* scheduler, 56 JobScheduler* scheduler,
45 internal::ResourceMetadata* metadata, 57 internal::ResourceMetadata* metadata,
46 internal::FileCache* cache, 58 internal::FileCache* cache,
47 google_apis::DriveServiceInterface* drive_service) 59 google_apis::DriveServiceInterface* drive_service)
48 : blocking_task_runner_(blocking_task_runner), 60 : blocking_task_runner_(blocking_task_runner),
49 observer_(observer), 61 observer_(observer),
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 void CopyOperation::ScheduleTransferRegularFileAfterGetResourceEntry( 199 void CopyOperation::ScheduleTransferRegularFileAfterGetResourceEntry(
188 const base::FilePath& local_file_path, 200 const base::FilePath& local_file_path,
189 const FileOperationCallback& callback, 201 const FileOperationCallback& callback,
190 FileError error, 202 FileError error,
191 scoped_ptr<ResourceEntry> entry) { 203 scoped_ptr<ResourceEntry> entry) {
192 if (error != FILE_ERROR_OK) { 204 if (error != FILE_ERROR_OK) {
193 callback.Run(error); 205 callback.Run(error);
194 return; 206 return;
195 } 207 }
196 208
197 cache_->StoreLocallyModifiedOnUIThread( 209 ResourceEntry* entry_ptr = entry.get();
198 entry->resource_id(), 210 base::PostTaskAndReplyWithResult(
199 entry->file_specific_info().md5(), 211 blocking_task_runner_,
200 local_file_path, 212 FROM_HERE,
201 internal::FileCache::FILE_OPERATION_COPY, 213 base::Bind(&StoreAndMarkDirty,
202 callback); 214 cache_,
215 entry_ptr->resource_id(),
216 entry_ptr->file_specific_info().md5(),
217 local_file_path),
218 base::Bind(&CopyOperation::ScheduleTransferRegularFileAfterStore,
219 weak_ptr_factory_.GetWeakPtr(),
220 base::Passed(&entry),
221 callback));
222 }
223
224 void CopyOperation::ScheduleTransferRegularFileAfterStore(
225 scoped_ptr<ResourceEntry> entry,
226 const FileOperationCallback& callback,
227 FileError error) {
228 if (error == FILE_ERROR_OK)
229 observer_->OnCacheFileUploadNeededByOperation(entry->resource_id());
230 callback.Run(error);
203 } 231 }
204 232
205 void CopyOperation::CopyHostedDocumentToDirectory( 233 void CopyOperation::CopyHostedDocumentToDirectory(
206 const base::FilePath& dir_path, 234 const base::FilePath& dir_path,
207 const std::string& resource_id, 235 const std::string& resource_id,
208 const base::FilePath::StringType& new_name, 236 const base::FilePath::StringType& new_name,
209 const FileOperationCallback& callback) { 237 const FileOperationCallback& callback) {
210 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 238 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
211 DCHECK(!callback.is_null()); 239 DCHECK(!callback.is_null());
212 240
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 canonicalized_resource_id, 474 canonicalized_resource_id,
447 // Drop the document extension, which should not be 475 // Drop the document extension, which should not be
448 // in the document title. 476 // in the document title.
449 // TODO(yoshiki): Remove this code with crbug.com/223304. 477 // TODO(yoshiki): Remove this code with crbug.com/223304.
450 remote_dest_file_path.BaseName().RemoveExtension().value(), 478 remote_dest_file_path.BaseName().RemoveExtension().value(),
451 callback); 479 callback);
452 } 480 }
453 481
454 } // namespace file_system 482 } // namespace file_system
455 } // namespace drive 483 } // namespace drive
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698