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

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

Issue 408143014: Rename OperationObserver to OperationDelegate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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"
11 #include "chrome/browser/chromeos/drive/drive.pb.h" 11 #include "chrome/browser/chromeos/drive/drive.pb.h"
12 #include "chrome/browser/chromeos/drive/file_cache.h" 12 #include "chrome/browser/chromeos/drive/file_cache.h"
13 #include "chrome/browser/chromeos/drive/file_change.h" 13 #include "chrome/browser/chromeos/drive/file_change.h"
14 #include "chrome/browser/chromeos/drive/file_system/create_file_operation.h" 14 #include "chrome/browser/chromeos/drive/file_system/create_file_operation.h"
15 #include "chrome/browser/chromeos/drive/file_system/operation_observer.h" 15 #include "chrome/browser/chromeos/drive/file_system/operation_delegate.h"
16 #include "chrome/browser/chromeos/drive/file_system_util.h" 16 #include "chrome/browser/chromeos/drive/file_system_util.h"
17 #include "chrome/browser/chromeos/drive/job_scheduler.h" 17 #include "chrome/browser/chromeos/drive/job_scheduler.h"
18 #include "chrome/browser/chromeos/drive/resource_entry_conversion.h" 18 #include "chrome/browser/chromeos/drive/resource_entry_conversion.h"
19 #include "chrome/browser/chromeos/drive/resource_metadata.h" 19 #include "chrome/browser/chromeos/drive/resource_metadata.h"
20 #include "chrome/browser/drive/drive_api_util.h" 20 #include "chrome/browser/drive/drive_api_util.h"
21 #include "content/public/browser/browser_thread.h" 21 #include "content/public/browser/browser_thread.h"
22 #include "google_apis/drive/drive_api_parser.h" 22 #include "google_apis/drive/drive_api_parser.h"
23 23
24 using content::BrowserThread; 24 using content::BrowserThread;
25 25
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 return metadata->GetFilePath(local_id, &params->changed_path); 269 return metadata->GetFilePath(local_id, &params->changed_path);
270 } 270 }
271 271
272 params->location_type = HAS_PARENT; 272 params->location_type = HAS_PARENT;
273 return FILE_ERROR_OK; 273 return FILE_ERROR_OK;
274 } 274 }
275 275
276 } // namespace 276 } // namespace
277 277
278 CopyOperation::CopyOperation(base::SequencedTaskRunner* blocking_task_runner, 278 CopyOperation::CopyOperation(base::SequencedTaskRunner* blocking_task_runner,
279 OperationObserver* observer, 279 OperationDelegate* delegate,
280 JobScheduler* scheduler, 280 JobScheduler* scheduler,
281 internal::ResourceMetadata* metadata, 281 internal::ResourceMetadata* metadata,
282 internal::FileCache* cache, 282 internal::FileCache* cache,
283 const ResourceIdCanonicalizer& id_canonicalizer) 283 const ResourceIdCanonicalizer& id_canonicalizer)
284 : blocking_task_runner_(blocking_task_runner), 284 : blocking_task_runner_(blocking_task_runner),
285 observer_(observer), 285 delegate_(delegate),
286 scheduler_(scheduler), 286 scheduler_(scheduler),
287 metadata_(metadata), 287 metadata_(metadata),
288 cache_(cache), 288 cache_(cache),
289 id_canonicalizer_(id_canonicalizer), 289 id_canonicalizer_(id_canonicalizer),
290 create_file_operation_(new CreateFileOperation(blocking_task_runner, 290 create_file_operation_(new CreateFileOperation(blocking_task_runner,
291 observer, 291 delegate,
292 metadata)), 292 metadata)),
293 weak_ptr_factory_(this) { 293 weak_ptr_factory_(this) {
294 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 294 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
295 } 295 }
296 296
297 CopyOperation::~CopyOperation() { 297 CopyOperation::~CopyOperation() {
298 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 298 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
299 } 299 }
300 300
301 void CopyOperation::Copy(const base::FilePath& src_file_path, 301 void CopyOperation::Copy(const base::FilePath& src_file_path,
(...skipping 26 matching lines...) Expand all
328 void CopyOperation::CopyAfterTryToCopyLocally( 328 void CopyOperation::CopyAfterTryToCopyLocally(
329 const CopyParams* params, 329 const CopyParams* params,
330 const std::vector<std::string>* updated_local_ids, 330 const std::vector<std::string>* updated_local_ids,
331 const bool* directory_changed, 331 const bool* directory_changed,
332 const bool* should_copy_on_server, 332 const bool* should_copy_on_server,
333 FileError error) { 333 FileError error) {
334 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 334 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
335 DCHECK(!params->callback.is_null()); 335 DCHECK(!params->callback.is_null());
336 336
337 for (size_t i = 0; i < updated_local_ids->size(); ++i) 337 for (size_t i = 0; i < updated_local_ids->size(); ++i)
338 observer_->OnEntryUpdatedByOperation((*updated_local_ids)[i]); 338 delegate_->OnEntryUpdatedByOperation((*updated_local_ids)[i]);
339 339
340 if (*directory_changed) { 340 if (*directory_changed) {
341 FileChange changed_file; 341 FileChange changed_file;
342 DCHECK(!params->src_entry.file_info().is_directory()); 342 DCHECK(!params->src_entry.file_info().is_directory());
343 changed_file.Update(params->dest_file_path, 343 changed_file.Update(params->dest_file_path,
344 FileChange::FILE_TYPE_FILE, 344 FileChange::FILE_TYPE_FILE,
345 FileChange::ADD_OR_UPDATE); 345 FileChange::ADD_OR_UPDATE);
346 observer_->OnFileChangedByOperation(changed_file); 346 delegate_->OnFileChangedByOperation(changed_file);
347 } 347 }
348 348
349 if (error != FILE_ERROR_OK || !*should_copy_on_server) { 349 if (error != FILE_ERROR_OK || !*should_copy_on_server) {
350 params->callback.Run(error); 350 params->callback.Run(error);
351 return; 351 return;
352 } 352 }
353 353
354 if (params->parent_entry.resource_id().empty()) { 354 if (params->parent_entry.resource_id().empty()) {
355 // Parent entry may be being synced. 355 // Parent entry may be being synced.
356 const bool waiting = observer_->WaitForSyncComplete( 356 const bool waiting = delegate_->WaitForSyncComplete(
357 params->parent_entry.local_id(), 357 params->parent_entry.local_id(),
358 base::Bind(&CopyOperation::CopyAfterParentSync, 358 base::Bind(&CopyOperation::CopyAfterParentSync,
359 weak_ptr_factory_.GetWeakPtr(), *params)); 359 weak_ptr_factory_.GetWeakPtr(), *params));
360 if (!waiting) 360 if (!waiting)
361 params->callback.Run(FILE_ERROR_NOT_FOUND); 361 params->callback.Run(FILE_ERROR_NOT_FOUND);
362 } else { 362 } else {
363 CopyAfterGetParentResourceId(*params, &params->parent_entry, FILE_ERROR_OK); 363 CopyAfterGetParentResourceId(*params, &params->parent_entry, FILE_ERROR_OK);
364 } 364 }
365 } 365 }
366 366
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 params->parent_resource_id, 496 params->parent_resource_id,
497 params->new_title, 497 params->new_title,
498 base::Time(), 498 base::Time(),
499 params->callback); 499 params->callback);
500 break; 500 break;
501 // When |resource_id| has no parent, we just set the new destination folder 501 // When |resource_id| has no parent, we just set the new destination folder
502 // as the parent, for sharing the document between the original source. 502 // as the parent, for sharing the document between the original source.
503 // This reparenting is already done in LocalWorkForTransferJsonGdocFile(). 503 // This reparenting is already done in LocalWorkForTransferJsonGdocFile().
504 case IS_ORPHAN: { 504 case IS_ORPHAN: {
505 DCHECK(!params->changed_path.empty()); 505 DCHECK(!params->changed_path.empty());
506 observer_->OnEntryUpdatedByOperation(params->local_id); 506 delegate_->OnEntryUpdatedByOperation(params->local_id);
507 507
508 FileChange changed_file; 508 FileChange changed_file;
509 changed_file.Update( 509 changed_file.Update(
510 params->changed_path, 510 params->changed_path,
511 FileChange::FILE_TYPE_FILE, // This must be a hosted document. 511 FileChange::FILE_TYPE_FILE, // This must be a hosted document.
512 FileChange::ADD_OR_UPDATE); 512 FileChange::ADD_OR_UPDATE);
513 observer_->OnFileChangedByOperation(changed_file); 513 delegate_->OnFileChangedByOperation(changed_file);
514 params->callback.Run(error); 514 params->callback.Run(error);
515 break; 515 break;
516 } 516 }
517 // When the |resource_id| is not in the local metadata, assume it to be a 517 // When the |resource_id| is not in the local metadata, assume it to be a
518 // document just now shared on the server but not synced locally. 518 // document just now shared on the server but not synced locally.
519 // Same as the IS_ORPHAN case, we want to deal the case by setting parent, 519 // Same as the IS_ORPHAN case, we want to deal the case by setting parent,
520 // but this time we need to resort to server side operation. 520 // but this time we need to resort to server side operation.
521 case NOT_IN_METADATA: 521 case NOT_IN_METADATA:
522 scheduler_->UpdateResource( 522 scheduler_->UpdateResource(
523 params->resource_id, 523 params->resource_id,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 const FileOperationCallback& callback, 586 const FileOperationCallback& callback,
587 base::FilePath* file_path, 587 base::FilePath* file_path,
588 const ResourceEntry* entry, 588 const ResourceEntry* entry,
589 FileError error) { 589 FileError error) {
590 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 590 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
591 DCHECK(!callback.is_null()); 591 DCHECK(!callback.is_null());
592 592
593 if (error == FILE_ERROR_OK) { 593 if (error == FILE_ERROR_OK) {
594 FileChange changed_file; 594 FileChange changed_file;
595 changed_file.Update(*file_path, *entry, FileChange::ADD_OR_UPDATE); 595 changed_file.Update(*file_path, *entry, FileChange::ADD_OR_UPDATE);
596 observer_->OnFileChangedByOperation(changed_file); 596 delegate_->OnFileChangedByOperation(changed_file);
597 } 597 }
598 callback.Run(error); 598 callback.Run(error);
599 } 599 }
600 600
601 void CopyOperation::ScheduleTransferRegularFile( 601 void CopyOperation::ScheduleTransferRegularFile(
602 const base::FilePath& local_src_path, 602 const base::FilePath& local_src_path,
603 const base::FilePath& remote_dest_path, 603 const base::FilePath& remote_dest_path,
604 const FileOperationCallback& callback) { 604 const FileOperationCallback& callback) {
605 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 605 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
606 DCHECK(!callback.is_null()); 606 DCHECK(!callback.is_null());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 const base::FilePath& remote_dest_path, 653 const base::FilePath& remote_dest_path,
654 const ResourceEntry* entry, 654 const ResourceEntry* entry,
655 std::string* local_id, 655 std::string* local_id,
656 FileError error) { 656 FileError error) {
657 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 657 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
658 DCHECK(!callback.is_null()); 658 DCHECK(!callback.is_null());
659 659
660 if (error == FILE_ERROR_OK) { 660 if (error == FILE_ERROR_OK) {
661 FileChange changed_file; 661 FileChange changed_file;
662 changed_file.Update(remote_dest_path, *entry, FileChange::ADD_OR_UPDATE); 662 changed_file.Update(remote_dest_path, *entry, FileChange::ADD_OR_UPDATE);
663 observer_->OnFileChangedByOperation(changed_file); 663 delegate_->OnFileChangedByOperation(changed_file);
664 observer_->OnEntryUpdatedByOperation(*local_id); 664 delegate_->OnEntryUpdatedByOperation(*local_id);
665 } 665 }
666 callback.Run(error); 666 callback.Run(error);
667 } 667 }
668 668
669 } // namespace file_system 669 } // namespace file_system
670 } // namespace drive 670 } // namespace drive
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698