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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/drive_backend_util.cc

Issue 428063002: [SyncFS] Replace leveldb classes with LevelDBWrapper (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 4 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_backend/drive_backend_util.h" 5 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_vector.h" 8 #include "base/memory/scoped_vector.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
11 #include "base/threading/thread_restrictions.h" 11 #include "base/threading/thread_restrictions.h"
12 #include "chrome/browser/drive/drive_api_util.h" 12 #include "chrome/browser/drive/drive_api_util.h"
13 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h" 13 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h"
14 #include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h"
14 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 15 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h"
15 #include "chrome/browser/sync_file_system/logger.h" 16 #include "chrome/browser/sync_file_system/logger.h"
16 #include "google_apis/drive/drive_api_parser.h" 17 #include "google_apis/drive/drive_api_parser.h"
17 #include "google_apis/drive/gdata_wapi_parser.h" 18 #include "google_apis/drive/gdata_wapi_parser.h"
18 #include "third_party/leveldatabase/src/include/leveldb/db.h" 19 #include "third_party/leveldatabase/src/include/leveldb/status.h"
19 #include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
20 20
21 namespace sync_file_system { 21 namespace sync_file_system {
22 namespace drive_backend { 22 namespace drive_backend {
23 23
24 void PutVersionToBatch(int64 version, leveldb::WriteBatch* batch) { 24 void PutVersionToDB(int64 version, LevelDBWrapper* db) {
25 if (batch) 25 if (db)
26 batch->Put(kDatabaseVersionKey, base::Int64ToString(version)); 26 db->Put(kDatabaseVersionKey, base::Int64ToString(version));
27 } 27 }
28 28
29 void PutServiceMetadataToBatch(const ServiceMetadata& service_metadata, 29 void PutServiceMetadataToDB(const ServiceMetadata& service_metadata,
30 leveldb::WriteBatch* batch) { 30 LevelDBWrapper* db) {
31 if (!batch) 31 if (!db)
32 return; 32 return;
33 33
34 std::string value; 34 std::string value;
35 bool success = service_metadata.SerializeToString(&value); 35 bool success = service_metadata.SerializeToString(&value);
36 DCHECK(success); 36 DCHECK(success);
37 batch->Put(kServiceMetadataKey, value); 37 db->Put(kServiceMetadataKey, value);
38 } 38 }
39 39
40 void PutFileMetadataToBatch(const FileMetadata& file, 40 void PutFileMetadataToDB(const FileMetadata& file, LevelDBWrapper* db) {
41 leveldb::WriteBatch* batch) { 41 if (!db)
42 if (!batch)
43 return; 42 return;
44 43
45 std::string value; 44 std::string value;
46 bool success = file.SerializeToString(&value); 45 bool success = file.SerializeToString(&value);
47 DCHECK(success); 46 DCHECK(success);
48 batch->Put(kFileMetadataKeyPrefix + file.file_id(), value); 47 db->Put(kFileMetadataKeyPrefix + file.file_id(), value);
49 } 48 }
50 49
51 void PutFileTrackerToBatch(const FileTracker& tracker, 50 void PutFileTrackerToDB(const FileTracker& tracker, LevelDBWrapper* db) {
52 leveldb::WriteBatch* batch) { 51 if (!db)
53 if (!batch)
54 return; 52 return;
55 53
56 std::string value; 54 std::string value;
57 bool success = tracker.SerializeToString(&value); 55 bool success = tracker.SerializeToString(&value);
58 DCHECK(success); 56 DCHECK(success);
59 batch->Put(kFileTrackerKeyPrefix + base::Int64ToString(tracker.tracker_id()), 57 db->Put(kFileTrackerKeyPrefix + base::Int64ToString(tracker.tracker_id()),
60 value); 58 value);
61 } 59 }
62 60
63 void PutFileMetadataDeletionToBatch(const std::string& file_id, 61 void PutFileMetadataDeletionToDB(const std::string& file_id,
64 leveldb::WriteBatch* batch) { 62 LevelDBWrapper* db) {
65 if (batch) 63 if (db)
66 batch->Delete(kFileMetadataKeyPrefix + file_id); 64 db->Delete(kFileMetadataKeyPrefix + file_id);
67 } 65 }
68 66
69 void PutFileTrackerDeletionToBatch(int64 tracker_id, 67 void PutFileTrackerDeletionToDB(int64 tracker_id, LevelDBWrapper* db) {
70 leveldb::WriteBatch* batch) { 68 if (db)
71 if (batch) 69 db->Delete(kFileTrackerKeyPrefix + base::Int64ToString(tracker_id));
72 batch->Delete(kFileTrackerKeyPrefix + base::Int64ToString(tracker_id));
73 } 70 }
74 71
75 bool HasFileAsParent(const FileDetails& details, const std::string& file_id) { 72 bool HasFileAsParent(const FileDetails& details, const std::string& file_id) {
76 for (int i = 0; i < details.parent_folder_ids_size(); ++i) { 73 for (int i = 0; i < details.parent_folder_ids_size(); ++i) {
77 if (details.parent_folder_ids(i) == file_id) 74 if (details.parent_folder_ids(i) == file_id)
78 return true; 75 return true;
79 } 76 }
80 return false; 77 return false;
81 } 78 }
82 79
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 if (out) 161 if (out)
165 *out = str; 162 *out = str;
166 return false; 163 return false;
167 } 164 }
168 165
169 if (out) 166 if (out)
170 *out = str.substr(prefix.size()); 167 *out = str.substr(prefix.size());
171 return true; 168 return true;
172 } 169 }
173 170
174 scoped_ptr<ServiceMetadata> InitializeServiceMetadata(leveldb::DB* db) { 171 scoped_ptr<ServiceMetadata> InitializeServiceMetadata(LevelDBWrapper* db) {
175 base::ThreadRestrictions::AssertIOAllowed(); 172 base::ThreadRestrictions::AssertIOAllowed();
176 DCHECK(db); 173 DCHECK(db);
177 174
178 std::string value; 175 std::string value;
179 leveldb::Status status = db->Get(leveldb::ReadOptions(), 176 leveldb::Status status = db->Get(kServiceMetadataKey, &value);
180 kServiceMetadataKey,
181 &value);
182 177
183 scoped_ptr<ServiceMetadata> service_metadata(new ServiceMetadata); 178 scoped_ptr<ServiceMetadata> service_metadata(new ServiceMetadata);
184 if (!status.ok() || !service_metadata->ParseFromString(value)) 179 if (!status.ok() || !service_metadata->ParseFromString(value))
185 service_metadata->set_next_tracker_id(1); 180 service_metadata->set_next_tracker_id(1);
186 181
187 return service_metadata.Pass(); 182 return service_metadata.Pass();
188 } 183 }
189 184
190 } // namespace drive_backend 185 } // namespace drive_backend
191 } // namespace sync_file_system 186 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698