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 <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
11 #include <map> | 11 #include <map> |
12 #include <memory> | 12 #include <memory> |
13 #include <set> | 13 #include <set> |
14 #include <string> | 14 #include <string> |
15 #include <vector> | 15 #include <vector> |
16 | 16 |
17 #include "base/containers/hash_tables.h" | 17 #include "base/containers/hash_tables.h" |
18 #include "base/files/file_path.h" | 18 #include "base/files/file_path.h" |
19 #include "base/macros.h" | 19 #include "base/macros.h" |
20 #include "base/memory/scoped_vector.h" | |
21 #include "base/memory/weak_ptr.h" | 20 #include "base/memory/weak_ptr.h" |
22 #include "base/sequence_checker.h" | 21 #include "base/sequence_checker.h" |
23 #include "base/values.h" | 22 #include "base/values.h" |
24 #include "chrome/browser/sync_file_system/drive_backend/tracker_id_set.h" | 23 #include "chrome/browser/sync_file_system/drive_backend/tracker_id_set.h" |
25 #include "chrome/browser/sync_file_system/sync_status_code.h" | 24 #include "chrome/browser/sync_file_system/sync_status_code.h" |
26 | 25 |
27 namespace leveldb { | 26 namespace leveldb { |
28 class Env; | 27 class Env; |
29 } | 28 } |
30 | 29 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 // Populates empty database with initial data. | 175 // Populates empty database with initial data. |
177 // Adds a file metadata and a file tracker for |sync_root_folder|, and adds | 176 // Adds a file metadata and a file tracker for |sync_root_folder|, and adds |
178 // file metadata and file trackers for each |app_root_folders|. | 177 // file metadata and file trackers for each |app_root_folders|. |
179 // Newly added tracker for |sync_root_folder| is active and non-dirty. | 178 // Newly added tracker for |sync_root_folder| is active and non-dirty. |
180 // Newly added trackers for |app_root_folders| are inactive and non-dirty. | 179 // Newly added trackers for |app_root_folders| are inactive and non-dirty. |
181 // Trackers for |app_root_folders| are not yet registered as app-roots, but | 180 // Trackers for |app_root_folders| are not yet registered as app-roots, but |
182 // are ready to register. | 181 // are ready to register. |
183 SyncStatusCode PopulateInitialData( | 182 SyncStatusCode PopulateInitialData( |
184 int64_t largest_change_id, | 183 int64_t largest_change_id, |
185 const google_apis::FileResource& sync_root_folder, | 184 const google_apis::FileResource& sync_root_folder, |
186 const ScopedVector<google_apis::FileResource>& app_root_folders); | 185 const std::vector<std::unique_ptr<google_apis::FileResource>>& |
| 186 app_root_folders); |
187 | 187 |
188 // Returns true if the folder associated to |app_id| is enabled. | 188 // Returns true if the folder associated to |app_id| is enabled. |
189 bool IsAppEnabled(const std::string& app_id) const; | 189 bool IsAppEnabled(const std::string& app_id) const; |
190 | 190 |
191 // Registers existing folder as the app-root for |app_id|. The folder | 191 // Registers existing folder as the app-root for |app_id|. The folder |
192 // must be an inactive folder that does not yet associated to any App. | 192 // must be an inactive folder that does not yet associated to any App. |
193 // This method associates the folder with |app_id| and activates it. | 193 // This method associates the folder with |app_id| and activates it. |
194 SyncStatusCode RegisterApp(const std::string& app_id, | 194 SyncStatusCode RegisterApp(const std::string& app_id, |
195 const std::string& folder_id); | 195 const std::string& folder_id); |
196 | 196 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 bool FindNearestActiveAncestor(const std::string& app_id, | 254 bool FindNearestActiveAncestor(const std::string& app_id, |
255 const base::FilePath& full_path, | 255 const base::FilePath& full_path, |
256 FileTracker* tracker, | 256 FileTracker* tracker, |
257 base::FilePath* path) const; | 257 base::FilePath* path) const; |
258 | 258 |
259 // Updates database by |changes|. | 259 // Updates database by |changes|. |
260 // Marks each tracker for modified file as dirty and adds new trackers if | 260 // Marks each tracker for modified file as dirty and adds new trackers if |
261 // needed. | 261 // needed. |
262 SyncStatusCode UpdateByChangeList( | 262 SyncStatusCode UpdateByChangeList( |
263 int64_t largest_change_id, | 263 int64_t largest_change_id, |
264 ScopedVector<google_apis::ChangeResource> changes); | 264 std::vector<std::unique_ptr<google_apis::ChangeResource>> changes); |
265 | 265 |
266 // Updates database by |resource|. | 266 // Updates database by |resource|. |
267 // Marks each tracker for modified file as dirty and adds new trackers if | 267 // Marks each tracker for modified file as dirty and adds new trackers if |
268 // needed. | 268 // needed. |
269 SyncStatusCode UpdateByFileResource( | 269 SyncStatusCode UpdateByFileResource( |
270 const google_apis::FileResource& resource); | 270 const google_apis::FileResource& resource); |
271 SyncStatusCode UpdateByFileResourceList( | 271 SyncStatusCode UpdateByFileResourceList( |
272 ScopedVector<google_apis::FileResource> resources); | 272 std::vector<std::unique_ptr<google_apis::FileResource>> resources); |
273 | 273 |
274 SyncStatusCode UpdateByDeletedRemoteFile(const std::string& file_id); | 274 SyncStatusCode UpdateByDeletedRemoteFile(const std::string& file_id); |
275 SyncStatusCode UpdateByDeletedRemoteFileList(const FileIDList& file_ids); | 275 SyncStatusCode UpdateByDeletedRemoteFileList(const FileIDList& file_ids); |
276 | 276 |
277 // Adds new FileTracker and FileMetadata. The database must not have | 277 // Adds new FileTracker and FileMetadata. The database must not have |
278 // |resource| beforehand. | 278 // |resource| beforehand. |
279 // The newly added tracker under |parent_tracker_id| is active and non-dirty. | 279 // The newly added tracker under |parent_tracker_id| is active and non-dirty. |
280 // Deactivates existing active tracker if exists that has the same title and | 280 // Deactivates existing active tracker if exists that has the same title and |
281 // parent_tracker to the newly added tracker. | 281 // parent_tracker to the newly added tracker. |
282 SyncStatusCode ReplaceActiveTrackerWithNewResource( | 282 SyncStatusCode ReplaceActiveTrackerWithNewResource( |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 | 405 |
406 base::WeakPtrFactory<MetadataDatabase> weak_ptr_factory_; | 406 base::WeakPtrFactory<MetadataDatabase> weak_ptr_factory_; |
407 | 407 |
408 DISALLOW_COPY_AND_ASSIGN(MetadataDatabase); | 408 DISALLOW_COPY_AND_ASSIGN(MetadataDatabase); |
409 }; | 409 }; |
410 | 410 |
411 } // namespace drive_backend | 411 } // namespace drive_backend |
412 } // namespace sync_file_system | 412 } // namespace sync_file_system |
413 | 413 |
414 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_H_ | 414 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_METADATA_DATABASE_H_ |
OLD | NEW |