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/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: 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/write_batch.h"
20 19
21 namespace sync_file_system { 20 namespace sync_file_system {
22 namespace drive_backend { 21 namespace drive_backend {
23 22
24 void PutVersionToBatch(int64 version, leveldb::WriteBatch* batch) { 23 void PutVersionToDB(int64 version, LevelDBWrapper* db) {
25 if (batch) 24 if (db)
26 batch->Put(kDatabaseVersionKey, base::Int64ToString(version)); 25 db->Put(kDatabaseVersionKey, base::Int64ToString(version));
27 } 26 }
28 27
29 void PutServiceMetadataToBatch(const ServiceMetadata& service_metadata, 28 void PutServiceMetadataToDB(const ServiceMetadata& service_metadata,
30 leveldb::WriteBatch* batch) { 29 LevelDBWrapper* db) {
31 if (!batch) 30 if (!db)
32 return; 31 return;
33 32
34 std::string value; 33 std::string value;
35 bool success = service_metadata.SerializeToString(&value); 34 bool success = service_metadata.SerializeToString(&value);
36 DCHECK(success); 35 DCHECK(success);
37 batch->Put(kServiceMetadataKey, value); 36 db->Put(kServiceMetadataKey, value);
38 } 37 }
39 38
40 void PutFileMetadataToBatch(const FileMetadata& file, 39 void PutFileMetadataToDB(const FileMetadata& file, LevelDBWrapper* db) {
41 leveldb::WriteBatch* batch) { 40 if (!db)
42 if (!batch)
43 return; 41 return;
44 42
45 std::string value; 43 std::string value;
46 bool success = file.SerializeToString(&value); 44 bool success = file.SerializeToString(&value);
47 DCHECK(success); 45 DCHECK(success);
48 batch->Put(kFileMetadataKeyPrefix + file.file_id(), value); 46 db->Put(kFileMetadataKeyPrefix + file.file_id(), value);
49 } 47 }
50 48
51 void PutFileTrackerToBatch(const FileTracker& tracker, 49 void PutFileTrackerToDB(const FileTracker& tracker, LevelDBWrapper* db) {
52 leveldb::WriteBatch* batch) { 50 if (!db)
53 if (!batch)
54 return; 51 return;
55 52
56 std::string value; 53 std::string value;
57 bool success = tracker.SerializeToString(&value); 54 bool success = tracker.SerializeToString(&value);
58 DCHECK(success); 55 DCHECK(success);
59 batch->Put(kFileTrackerKeyPrefix + base::Int64ToString(tracker.tracker_id()), 56 db->Put(kFileTrackerKeyPrefix + base::Int64ToString(tracker.tracker_id()),
60 value); 57 value);
61 } 58 }
62 59
63 void PutFileMetadataDeletionToBatch(const std::string& file_id, 60 void PutFileMetadataDeletionToDB(const std::string& file_id,
64 leveldb::WriteBatch* batch) { 61 LevelDBWrapper* db) {
65 if (batch) 62 if (db)
66 batch->Delete(kFileMetadataKeyPrefix + file_id); 63 db->Delete(kFileMetadataKeyPrefix + file_id);
67 } 64 }
68 65
69 void PutFileTrackerDeletionToBatch(int64 tracker_id, 66 void PutFileTrackerDeletionToDB(int64 tracker_id, LevelDBWrapper* db) {
70 leveldb::WriteBatch* batch) { 67 if (db)
71 if (batch) 68 db->Delete(kFileTrackerKeyPrefix + base::Int64ToString(tracker_id));
72 batch->Delete(kFileTrackerKeyPrefix + base::Int64ToString(tracker_id));
73 } 69 }
74 70
75 bool HasFileAsParent(const FileDetails& details, const std::string& file_id) { 71 bool HasFileAsParent(const FileDetails& details, const std::string& file_id) {
76 for (int i = 0; i < details.parent_folder_ids_size(); ++i) { 72 for (int i = 0; i < details.parent_folder_ids_size(); ++i) {
77 if (details.parent_folder_ids(i) == file_id) 73 if (details.parent_folder_ids(i) == file_id)
78 return true; 74 return true;
79 } 75 }
80 return false; 76 return false;
81 } 77 }
82 78
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 if (out) 160 if (out)
165 *out = str; 161 *out = str;
166 return false; 162 return false;
167 } 163 }
168 164
169 if (out) 165 if (out)
170 *out = str.substr(prefix.size()); 166 *out = str.substr(prefix.size());
171 return true; 167 return true;
172 } 168 }
173 169
174 scoped_ptr<ServiceMetadata> InitializeServiceMetadata(leveldb::DB* db) { 170 scoped_ptr<ServiceMetadata> InitializeServiceMetadata(LevelDBWrapper* db) {
175 base::ThreadRestrictions::AssertIOAllowed(); 171 base::ThreadRestrictions::AssertIOAllowed();
176 DCHECK(db); 172 DCHECK(db);
177 173
178 std::string value; 174 std::string value;
179 leveldb::Status status = db->Get(leveldb::ReadOptions(), 175 leveldb::Status status = db->Get(kServiceMetadataKey, &value);
180 kServiceMetadataKey,
181 &value);
182 176
183 scoped_ptr<ServiceMetadata> service_metadata(new ServiceMetadata); 177 scoped_ptr<ServiceMetadata> service_metadata(new ServiceMetadata);
184 if (!status.ok() || !service_metadata->ParseFromString(value)) 178 if (!status.ok() || !service_metadata->ParseFromString(value))
185 service_metadata->set_next_tracker_id(1); 179 service_metadata->set_next_tracker_id(1);
186 180
187 return service_metadata.Pass(); 181 return service_metadata.Pass();
188 } 182 }
189 183
190 } // namespace drive_backend 184 } // namespace drive_backend
191 } // namespace sync_file_system 185 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698