| 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 |