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

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

Issue 15711009: [SyncFileSystem][Clean up] Delete DriveMetadataDB::DeleteEntry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase 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
« no previous file with comments | « chrome/browser/sync_file_system/drive_metadata_store.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 SyncStatusCode MigrateDatabaseIfNeeded(); 108 SyncStatusCode MigrateDatabaseIfNeeded();
109 109
110 SyncStatusCode SetLargestChangestamp(int64 largest_changestamp); 110 SyncStatusCode SetLargestChangestamp(int64 largest_changestamp);
111 SyncStatusCode SetSyncRootDirectory(const std::string& resource_id); 111 SyncStatusCode SetSyncRootDirectory(const std::string& resource_id);
112 SyncStatusCode GetSyncRootDirectory(std::string* resource_id); 112 SyncStatusCode GetSyncRootDirectory(std::string* resource_id);
113 SyncStatusCode SetOriginRootDirectory(const GURL& origin, 113 SyncStatusCode SetOriginRootDirectory(const GURL& origin,
114 OriginSyncType sync_type, 114 OriginSyncType sync_type,
115 const std::string& resource_id); 115 const std::string& resource_id);
116 SyncStatusCode UpdateEntry(const FileSystemURL& url, 116 SyncStatusCode UpdateEntry(const FileSystemURL& url,
117 DriveMetadata metadata); 117 DriveMetadata metadata);
118 SyncStatusCode DeleteEntry(const FileSystemURL& url);
119 118
120 // TODO(calvinlo): consolidate these state transition functions for sync 119 // TODO(calvinlo): consolidate these state transition functions for sync
121 // origins like "UpdateOrigin(GURL, SyncStatusEnum)". And manage origins in 120 // origins like "UpdateOrigin(GURL, SyncStatusEnum)". And manage origins in
122 // just one map like "Map<SyncStatusEnum, ResourceIDMap>". 121 // just one map like "Map<SyncStatusEnum, ResourceIDMap>".
123 // http://crbug.com/211600 122 // http://crbug.com/211600
124 SyncStatusCode UpdateOriginAsIncrementalSync(const GURL& origin, 123 SyncStatusCode UpdateOriginAsIncrementalSync(const GURL& origin,
125 const std::string& resource_id); 124 const std::string& resource_id);
126 SyncStatusCode EnableOrigin(const GURL& origin, 125 SyncStatusCode EnableOrigin(const GURL& origin,
127 const std::string& resource_id); 126 const std::string& resource_id);
128 SyncStatusCode DisableOrigin(const GURL& origin, 127 SyncStatusCode DisableOrigin(const GURL& origin,
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 DCHECK(CalledOnValidThread()); 424 DCHECK(CalledOnValidThread());
426 MetadataMap::iterator found = metadata_map_.find(url.origin()); 425 MetadataMap::iterator found = metadata_map_.find(url.origin());
427 if (found == metadata_map_.end()) { 426 if (found == metadata_map_.end()) {
428 base::MessageLoopProxy::current()->PostTask( 427 base::MessageLoopProxy::current()->PostTask(
429 FROM_HERE, 428 FROM_HERE,
430 base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); 429 base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND));
431 return; 430 return;
432 } 431 }
433 432
434 if (found->second.erase(url.path()) == 1) { 433 if (found->second.erase(url.path()) == 1) {
435 base::PostTaskAndReplyWithResult( 434 scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
436 file_task_runner_.get(), 435 batch->Delete(FileSystemURLToMetadataKey(url));
437 FROM_HERE, 436 WriteToDB(batch.Pass(), callback);
438 base::Bind(
439 &DriveMetadataDB::DeleteEntry, base::Unretained(db_.get()), url),
440 base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback,
441 AsWeakPtr(),
442 callback));
443 return; 437 return;
444 } 438 }
445 439
446 base::MessageLoopProxy::current()->PostTask( 440 base::MessageLoopProxy::current()->PostTask(
447 FROM_HERE, 441 FROM_HERE,
448 base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND)); 442 base::Bind(callback, SYNC_DATABASE_ERROR_NOT_FOUND));
449 } 443 }
450 444
451 SyncStatusCode DriveMetadataStore::ReadEntry(const FileSystemURL& url, 445 SyncStatusCode DriveMetadataStore::ReadEntry(const FileSystemURL& url,
452 DriveMetadata* metadata) const { 446 DriveMetadata* metadata) const {
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback)); 621 base::Bind(&DriveMetadataStore::DidUpdateOrigin, AsWeakPtr(), callback));
628 } 622 }
629 623
630 void DriveMetadataStore::DidUpdateOrigin( 624 void DriveMetadataStore::DidUpdateOrigin(
631 const SyncStatusCallback& callback, 625 const SyncStatusCallback& callback,
632 SyncStatusCode status) { 626 SyncStatusCode status) {
633 UpdateDBStatus(status); 627 UpdateDBStatus(status);
634 callback.Run(status); 628 callback.Run(status);
635 } 629 }
636 630
631 void DriveMetadataStore::WriteToDB(scoped_ptr<leveldb::WriteBatch> batch,
632 const SyncStatusCallback& callback) {
633 base::PostTaskAndReplyWithResult(
634 file_task_runner_, FROM_HERE,
635 base::Bind(&DriveMetadataDB::WriteToDB,
636 base::Unretained(db_.get()), base::Owned(batch.release())),
637 base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback,
638 AsWeakPtr(), callback));
639 }
640
637 void DriveMetadataStore::UpdateDBStatus(SyncStatusCode status) { 641 void DriveMetadataStore::UpdateDBStatus(SyncStatusCode status) {
638 DCHECK(CalledOnValidThread()); 642 DCHECK(CalledOnValidThread());
639 if (db_status_ != SYNC_STATUS_OK && 643 if (db_status_ != SYNC_STATUS_OK &&
640 db_status_ != SYNC_DATABASE_ERROR_NOT_FOUND) { 644 db_status_ != SYNC_DATABASE_ERROR_NOT_FOUND) {
641 // TODO(tzik): Handle database corruption. http://crbug.com/153709 645 // TODO(tzik): Handle database corruption. http://crbug.com/153709
642 db_status_ = status; 646 db_status_ = status;
643 util::Log(logging::LOG_WARNING, 647 util::Log(logging::LOG_WARNING,
644 FROM_HERE, 648 FROM_HERE,
645 "DriveMetadataStore turned to wrong state: %s", 649 "DriveMetadataStore turned to wrong state: %s",
646 SyncStatusCodeToString(status).c_str()); 650 SyncStatusCodeToString(status).c_str());
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
930 std::string metadata_key = FileSystemURLToMetadataKey(url); 934 std::string metadata_key = FileSystemURLToMetadataKey(url);
931 std::string value; 935 std::string value;
932 bool success = metadata.SerializeToString(&value); 936 bool success = metadata.SerializeToString(&value);
933 DCHECK(success); 937 DCHECK(success);
934 938
935 leveldb::WriteBatch batch; 939 leveldb::WriteBatch batch;
936 batch.Put(metadata_key, value); 940 batch.Put(metadata_key, value);
937 return WriteToDB(&batch); 941 return WriteToDB(&batch);
938 } 942 }
939 943
940 SyncStatusCode DriveMetadataDB::DeleteEntry(const FileSystemURL& url) {
941 DCHECK(CalledOnValidThread());
942 DCHECK(db_.get());
943
944 std::string metadata_key = FileSystemURLToMetadataKey(url);
945 leveldb::WriteBatch batch;
946 batch.Delete(metadata_key);
947 return WriteToDB(&batch);
948 }
949
950 SyncStatusCode DriveMetadataDB::UpdateOriginAsIncrementalSync( 944 SyncStatusCode DriveMetadataDB::UpdateOriginAsIncrementalSync(
951 const GURL& origin, const std::string& resource_id) { 945 const GURL& origin, const std::string& resource_id) {
952 DCHECK(CalledOnValidThread()); 946 DCHECK(CalledOnValidThread());
953 DCHECK(db_.get()); 947 DCHECK(db_.get());
954 948
955 leveldb::WriteBatch batch; 949 leveldb::WriteBatch batch;
956 batch.Delete(CreateKeyForOriginRoot(origin, DISABLED_ORIGIN)); 950 batch.Delete(CreateKeyForOriginRoot(origin, DISABLED_ORIGIN));
957 batch.Put(CreateKeyForOriginRoot(origin, INCREMENTAL_SYNC_ORIGIN), 951 batch.Put(CreateKeyForOriginRoot(origin, INCREMENTAL_SYNC_ORIGIN),
958 drive::RemoveWapiIdPrefix(resource_id)); 952 drive::RemoveWapiIdPrefix(resource_id));
959 return WriteToDB(&batch); 953 return WriteToDB(&batch);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1068 1062
1069 bool result = disabled_origins->insert( 1063 bool result = disabled_origins->insert(
1070 std::make_pair(origin, origin_resource_id)).second; 1064 std::make_pair(origin, origin_resource_id)).second;
1071 DCHECK(result); 1065 DCHECK(result);
1072 } 1066 }
1073 1067
1074 return SYNC_STATUS_OK; 1068 return SYNC_STATUS_OK;
1075 } 1069 }
1076 1070
1077 } // namespace sync_file_system 1071 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/drive_metadata_store.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698