OLD | NEW |
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 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_H_ | 5 #ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_H_ |
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_H_ | 6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 enum UpdateOption { | 127 enum UpdateOption { |
128 UPDATE_TRACKER_FOR_UNSYNCED_FILE, | 128 UPDATE_TRACKER_FOR_UNSYNCED_FILE, |
129 UPDATE_TRACKER_FOR_SYNCED_FILE, | 129 UPDATE_TRACKER_FOR_SYNCED_FILE, |
130 }; | 130 }; |
131 | 131 |
132 // The entry point of the MetadataDatabase for production code. | 132 // The entry point of the MetadataDatabase for production code. |
133 // If |env_override| is non-NULL, internal LevelDB uses |env_override| instead | 133 // If |env_override| is non-NULL, internal LevelDB uses |env_override| instead |
134 // of leveldb::Env::Default(). Use leveldb::MemEnv in test code for faster | 134 // of leveldb::Env::Default(). Use leveldb::MemEnv in test code for faster |
135 // testing. | 135 // testing. |
136 static void Create(base::SequencedTaskRunner* worker_task_runner, | 136 static void Create(base::SequencedTaskRunner* worker_task_runner, |
137 base::SequencedTaskRunner* file_task_runner, | |
138 const base::FilePath& database_path, | 137 const base::FilePath& database_path, |
139 leveldb::Env* env_override, | 138 leveldb::Env* env_override, |
140 const CreateCallback& callback); | 139 const CreateCallback& callback); |
141 static SyncStatusCode CreateForTesting( | 140 static SyncStatusCode CreateForTesting( |
142 scoped_ptr<leveldb::DB> db, | 141 scoped_ptr<leveldb::DB> db, |
143 scoped_ptr<MetadataDatabase>* metadata_database_out); | 142 scoped_ptr<MetadataDatabase>* metadata_database_out); |
144 | 143 |
145 ~MetadataDatabase(); | 144 ~MetadataDatabase(); |
146 | 145 |
147 static void ClearDatabase(scoped_ptr<MetadataDatabase> metadata_database); | 146 static void ClearDatabase(scoped_ptr<MetadataDatabase> metadata_database); |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 bool GetConflictingTrackers(TrackerIDSet* trackers); | 342 bool GetConflictingTrackers(TrackerIDSet* trackers); |
344 | 343 |
345 // Sets |app_ids| to a list of all registered app ids. | 344 // Sets |app_ids| to a list of all registered app ids. |
346 void GetRegisteredAppIDs(std::vector<std::string>* app_ids); | 345 void GetRegisteredAppIDs(std::vector<std::string>* app_ids); |
347 | 346 |
348 private: | 347 private: |
349 friend class MetadataDatabaseTest; | 348 friend class MetadataDatabaseTest; |
350 struct CreateParam; | 349 struct CreateParam; |
351 | 350 |
352 MetadataDatabase(base::SequencedTaskRunner* worker_task_runner, | 351 MetadataDatabase(base::SequencedTaskRunner* worker_task_runner, |
353 base::SequencedTaskRunner* file_task_runner, | |
354 const base::FilePath& database_path, | 352 const base::FilePath& database_path, |
355 leveldb::Env* env_override); | 353 leveldb::Env* env_override); |
356 static void CreateOnFileTaskRunner( | 354 static void CreateOnWorkerTaskRunner( |
357 scoped_ptr<CreateParam> create_param, | 355 scoped_ptr<CreateParam> create_param, |
358 const CreateCallback& callback); | 356 const CreateCallback& callback); |
359 SyncStatusCode InitializeOnFileTaskRunner(); | 357 SyncStatusCode Initialize(); |
360 | 358 |
361 // Database manipulation methods. | 359 // Database manipulation methods. |
362 void RegisterTrackerAsAppRoot(const std::string& app_id, | 360 void RegisterTrackerAsAppRoot(const std::string& app_id, |
363 int64 tracker_id, | 361 int64 tracker_id, |
364 leveldb::WriteBatch* batch); | 362 leveldb::WriteBatch* batch); |
365 | 363 |
366 void CreateTrackerForParentAndFileID(const FileTracker& parent_tracker, | 364 void CreateTrackerForParentAndFileID(const FileTracker& parent_tracker, |
367 const std::string& file_id, | 365 const std::string& file_id, |
368 leveldb::WriteBatch* batch); | 366 leveldb::WriteBatch* batch); |
369 void CreateTrackerForParentAndFileMetadata(const FileTracker& parent_tracker, | 367 void CreateTrackerForParentAndFileMetadata(const FileTracker& parent_tracker, |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 leveldb::WriteBatch* batch); | 409 leveldb::WriteBatch* batch); |
412 | 410 |
413 void ForceActivateTrackerByPath(int64 parent_tracker_id, | 411 void ForceActivateTrackerByPath(int64 parent_tracker_id, |
414 const std::string& title, | 412 const std::string& title, |
415 const std::string& file_id, | 413 const std::string& file_id, |
416 leveldb::WriteBatch* batch); | 414 leveldb::WriteBatch* batch); |
417 | 415 |
418 void DetachFromSequence(); | 416 void DetachFromSequence(); |
419 | 417 |
420 scoped_refptr<base::SequencedTaskRunner> worker_task_runner_; | 418 scoped_refptr<base::SequencedTaskRunner> worker_task_runner_; |
421 scoped_refptr<base::SequencedTaskRunner> file_task_runner_; | |
422 base::FilePath database_path_; | 419 base::FilePath database_path_; |
423 leveldb::Env* env_override_; | 420 leveldb::Env* env_override_; |
424 scoped_ptr<leveldb::DB> db_; | 421 scoped_ptr<leveldb::DB> db_; |
425 | 422 |
426 int64 largest_known_change_id_; | 423 int64 largest_known_change_id_; |
427 | 424 |
428 scoped_ptr<MetadataDatabaseIndexInterface> index_; | 425 scoped_ptr<MetadataDatabaseIndexInterface> index_; |
429 | 426 |
430 base::WeakPtrFactory<MetadataDatabase> weak_ptr_factory_; | 427 base::WeakPtrFactory<MetadataDatabase> weak_ptr_factory_; |
431 | 428 |
432 base::SequenceChecker worker_sequence_checker_; | 429 base::SequenceChecker worker_sequence_checker_; |
433 | 430 |
434 DISALLOW_COPY_AND_ASSIGN(MetadataDatabase); | 431 DISALLOW_COPY_AND_ASSIGN(MetadataDatabase); |
435 }; | 432 }; |
436 | 433 |
437 } // namespace drive_backend | 434 } // namespace drive_backend |
438 } // namespace sync_file_system | 435 } // namespace sync_file_system |
439 | 436 |
440 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_H_ | 437 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_H_ |
OLD | NEW |