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

Side by Side Diff: chrome/browser/sync_file_system/drive_metadata_store.cc

Issue 15023022: Add to be fetched files instead of DriveMetadataStore.batch_sync_origins_ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tzik review, test revisions Created 7 years, 7 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/sync_file_system/drive_metadata_store.h" 5 #include "chrome/browser/sync_file_system/drive_metadata_store.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 return SYNC_DATABASE_ERROR_NOT_FOUND; 464 return SYNC_DATABASE_ERROR_NOT_FOUND;
465 465
466 PathToMetadata::const_iterator found = found_origin->second.find(url.path()); 466 PathToMetadata::const_iterator found = found_origin->second.find(url.path());
467 if (found == found_origin->second.end()) 467 if (found == found_origin->second.end())
468 return SYNC_DATABASE_ERROR_NOT_FOUND; 468 return SYNC_DATABASE_ERROR_NOT_FOUND;
469 469
470 *metadata = found->second; 470 *metadata = found->second;
471 return SYNC_STATUS_OK; 471 return SYNC_STATUS_OK;
472 } 472 }
473 473
474 void DriveMetadataStore::AddIncrementalSyncOrigin(
475 const GURL& origin,
476 const std::string& resource_id) {
477 AddBatchSyncOrigin(origin, resource_id);
478 MoveBatchSyncOriginToIncremental(origin);
479 }
480
474 void DriveMetadataStore::SetSyncRootDirectory(const std::string& resource_id) { 481 void DriveMetadataStore::SetSyncRootDirectory(const std::string& resource_id) {
475 DCHECK(CalledOnValidThread()); 482 DCHECK(CalledOnValidThread());
476 483
477 sync_root_directory_resource_id_ = resource_id; 484 sync_root_directory_resource_id_ = resource_id;
478 485
479 // Set the resource ID for the sync root directory in the DB. 486 // Set the resource ID for the sync root directory in the DB.
480 base::PostTaskAndReplyWithResult( 487 base::PostTaskAndReplyWithResult(
481 file_task_runner_, FROM_HERE, 488 file_task_runner_, FROM_HERE,
482 base::Bind(&DriveMetadataDB::SetSyncRootDirectory, 489 base::Bind(&DriveMetadataDB::SetSyncRootDirectory,
483 base::Unretained(db_.get()), resource_id), 490 base::Unretained(db_.get()), resource_id),
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 bool DriveMetadataStore::IsIncrementalSyncOrigin(const GURL& origin) const { 533 bool DriveMetadataStore::IsIncrementalSyncOrigin(const GURL& origin) const {
527 DCHECK(CalledOnValidThread()); 534 DCHECK(CalledOnValidThread());
528 return ContainsKey(incremental_sync_origins_, origin); 535 return ContainsKey(incremental_sync_origins_, origin);
529 } 536 }
530 537
531 bool DriveMetadataStore::IsOriginDisabled(const GURL& origin) const { 538 bool DriveMetadataStore::IsOriginDisabled(const GURL& origin) const {
532 DCHECK(CalledOnValidThread()); 539 DCHECK(CalledOnValidThread());
533 return ContainsKey(disabled_origins_, origin); 540 return ContainsKey(disabled_origins_, origin);
534 } 541 }
535 542
536 void DriveMetadataStore::AddBatchSyncOrigin(const GURL& origin,
537 const std::string& resource_id) {
538 DCHECK(CalledOnValidThread());
539 DCHECK(!IsBatchSyncOrigin(origin));
540 DCHECK(!IsIncrementalSyncOrigin(origin));
541 DCHECK(!IsOriginDisabled(origin));
542 DCHECK_EQ(SYNC_STATUS_OK, db_status_);
543
544 batch_sync_origins_.insert(std::make_pair(origin, resource_id));
545 origin_by_resource_id_.insert(std::make_pair(resource_id, origin));
546
547 // Store a pair of |origin| and |resource_id| in the DB.
548 base::PostTaskAndReplyWithResult(
549 file_task_runner_, FROM_HERE,
550 base::Bind(&DriveMetadataDB::UpdateOriginAsBatchSync,
551 base::Unretained(db_.get()), origin, resource_id),
552 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr()));
553 }
554
555 void DriveMetadataStore::MoveBatchSyncOriginToIncremental(const GURL& origin) {
556 DCHECK(CalledOnValidThread());
557 DCHECK(IsBatchSyncOrigin(origin));
558 DCHECK(!IsIncrementalSyncOrigin(origin));
559 DCHECK(!IsOriginDisabled(origin));
560 DCHECK_EQ(SYNC_STATUS_OK, db_status_);
561
562 std::map<GURL, std::string>::iterator found =
563 batch_sync_origins_.find(origin);
564 incremental_sync_origins_.insert(std::make_pair(origin, found->second));
565
566 // Store a pair of |origin| and |resource_id| in the DB.
567 base::PostTaskAndReplyWithResult(
568 file_task_runner_, FROM_HERE,
569 base::Bind(&DriveMetadataDB::UpdateOriginAsIncrementalSync,
570 base::Unretained(db_.get()), origin, found->second),
571 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr()));
572
573 batch_sync_origins_.erase(found);
574 }
575
576 void DriveMetadataStore::EnableOrigin( 543 void DriveMetadataStore::EnableOrigin(
577 const GURL& origin, 544 const GURL& origin,
578 const SyncStatusCallback& callback) { 545 const SyncStatusCallback& callback) {
579 DCHECK(CalledOnValidThread()); 546 DCHECK(CalledOnValidThread());
580 547
581 std::map<GURL, std::string>::iterator found = disabled_origins_.find(origin); 548 std::map<GURL, std::string>::iterator found = disabled_origins_.find(origin);
582 if (found == disabled_origins_.end()) { 549 if (found == disabled_origins_.end()) {
583 // |origin| has not been registered yet. 550 // |origin| has not been registered yet.
584 return; 551 return;
585 } 552 }
586 std::string resource_id = found->second; 553 std::string resource_id = found->second;
587 disabled_origins_.erase(found); 554 disabled_origins_.erase(found);
588 555
589 // Ensure |origin| is marked as a batch sync origin. 556 // |Origin| goes back to DriveFileSyncService.pending_batch_sync_origins_
590 batch_sync_origins_.insert(std::make_pair(origin, resource_id)); 557 // only and is not stored in drive_metadata_store.
591 found = incremental_sync_origins_.find(origin); 558 found = incremental_sync_origins_.find(origin);
592 if (found != incremental_sync_origins_.end()) 559 if (found != incremental_sync_origins_.end())
593 incremental_sync_origins_.erase(found); 560 incremental_sync_origins_.erase(found);
594 561
595 // Store a pair of |origin| and |resource_id| in the DB. 562 // Store a pair of |origin| and |resource_id| in the DB.
596 base::PostTaskAndReplyWithResult( 563 base::PostTaskAndReplyWithResult(
597 file_task_runner_, FROM_HERE, 564 file_task_runner_, FROM_HERE,
598 base::Bind(&DriveMetadataDB::EnableOrigin, 565 base::Bind(&DriveMetadataDB::EnableOrigin,
599 base::Unretained(db_.get()), origin, resource_id), 566 base::Unretained(db_.get()), origin, resource_id),
600 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); 567 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback));
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); 622 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback));
656 } 623 }
657 624
658 void DriveMetadataStore::DidUpdateOrigin( 625 void DriveMetadataStore::DidUpdateOrigin(
659 const SyncStatusCallback& callback, 626 const SyncStatusCallback& callback,
660 SyncStatusCode status) { 627 SyncStatusCode status) {
661 UpdateDBStatus(status); 628 UpdateDBStatus(status);
662 callback.Run(status); 629 callback.Run(status);
663 } 630 }
664 631
632 void DriveMetadataStore::AddBatchSyncOrigin(const GURL& origin,
633 const std::string& resource_id) {
634 DCHECK(CalledOnValidThread());
635 DCHECK(!IsIncrementalSyncOrigin(origin));
636 DCHECK(!IsOriginDisabled(origin));
637 DCHECK_EQ(SYNC_STATUS_OK, db_status_);
638
639 if (IsBatchSyncOrigin(origin))
640 return;
641
642 batch_sync_origins_.insert(std::make_pair(origin, resource_id));
643 origin_by_resource_id_.insert(std::make_pair(resource_id, origin));
644
645 // Store a pair of |origin| and |resource_id| in the DB.
646 base::PostTaskAndReplyWithResult(
647 file_task_runner_, FROM_HERE,
648 base::Bind(&DriveMetadataDB::UpdateOriginAsBatchSync,
649 base::Unretained(db_.get()), origin, resource_id),
650 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr()));
651 }
652
653 void DriveMetadataStore::MoveBatchSyncOriginToIncremental(const GURL& origin) {
654 DCHECK(CalledOnValidThread());
655 DCHECK(IsBatchSyncOrigin(origin));
656 DCHECK(!IsIncrementalSyncOrigin(origin));
657 DCHECK(!IsOriginDisabled(origin));
658 DCHECK_EQ(SYNC_STATUS_OK, db_status_);
659
660 std::map<GURL, std::string>::iterator found =
661 batch_sync_origins_.find(origin);
662 incremental_sync_origins_.insert(std::make_pair(origin, found->second));
663
664 // Store a pair of |origin| and |resource_id| in the DB.
665 base::PostTaskAndReplyWithResult(
666 file_task_runner_, FROM_HERE,
667 base::Bind(&DriveMetadataDB::UpdateOriginAsIncrementalSync,
668 base::Unretained(db_.get()), origin, found->second),
669 base::Bind(&DriveMetadataStore::UpdateDBStatus, AsWeakPtr()));
670
671 batch_sync_origins_.erase(found);
672 }
673
665 void DriveMetadataStore::UpdateDBStatus(SyncStatusCode status) { 674 void DriveMetadataStore::UpdateDBStatus(SyncStatusCode status) {
666 DCHECK(CalledOnValidThread()); 675 DCHECK(CalledOnValidThread());
667 if (db_status_ != SYNC_STATUS_OK && 676 if (db_status_ != SYNC_STATUS_OK &&
668 db_status_ != SYNC_DATABASE_ERROR_NOT_FOUND) { 677 db_status_ != SYNC_DATABASE_ERROR_NOT_FOUND) {
669 // TODO(tzik): Handle database corruption. http://crbug.com/153709 678 // TODO(tzik): Handle database corruption. http://crbug.com/153709
670 db_status_ = status; 679 db_status_ = status;
671 LOG(WARNING) << "DriveMetadataStore turned to wrong state: " << status; 680 LOG(WARNING) << "DriveMetadataStore turned to wrong state: " << status;
672 return; 681 return;
673 } 682 }
674 db_status_ = SYNC_STATUS_OK; 683 db_status_ = SYNC_STATUS_OK;
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
1179 DCHECK(origin.is_valid()); 1188 DCHECK(origin.is_valid());
1180 bool result = disabled_origins->insert( 1189 bool result = disabled_origins->insert(
1181 std::make_pair(origin, itr->value().ToString())).second; 1190 std::make_pair(origin, itr->value().ToString())).second;
1182 DCHECK(result); 1191 DCHECK(result);
1183 } 1192 }
1184 1193
1185 return SYNC_STATUS_OK; 1194 return SYNC_STATUS_OK;
1186 } 1195 }
1187 1196
1188 } // namespace sync_file_system 1197 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698