| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ | 6 #define CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 namespace gdata { | 31 namespace gdata { |
| 32 | 32 |
| 33 class DocumentsServiceInterface; | 33 class DocumentsServiceInterface; |
| 34 class DriveWebAppsRegistryInterface; | 34 class DriveWebAppsRegistryInterface; |
| 35 struct UploadFileInfo; | 35 struct UploadFileInfo; |
| 36 | 36 |
| 37 namespace { | 37 namespace { |
| 38 struct LoadRootFeedParams; | 38 struct LoadRootFeedParams; |
| 39 } // namespace | 39 } // namespace |
| 40 | 40 |
| 41 // TODO(satorux): Move this into a new file. crbug.com/130669 |
| 42 typedef std::map<std::string /* resource_id */, GDataEntry*> |
| 43 FileResourceIdMap; |
| 44 |
| 41 // The production implementation of GDataFileSystemInterface. | 45 // The production implementation of GDataFileSystemInterface. |
| 42 class GDataFileSystem : public GDataFileSystemInterface, | 46 class GDataFileSystem : public GDataFileSystemInterface, |
| 43 public content::NotificationObserver { | 47 public content::NotificationObserver { |
| 44 public: | 48 public: |
| 45 GDataFileSystem(Profile* profile, | 49 GDataFileSystem(Profile* profile, |
| 46 GDataCache* cache, | 50 GDataCache* cache, |
| 47 DocumentsServiceInterface* documents_service, | 51 DocumentsServiceInterface* documents_service, |
| 48 GDataUploaderInterface* uploader, | 52 GDataUploaderInterface* uploader, |
| 49 DriveWebAppsRegistryInterface* webapps_registry, | 53 DriveWebAppsRegistryInterface* webapps_registry, |
| 50 base::SequencedTaskRunner* blocking_task_runner); | 54 base::SequencedTaskRunner* blocking_task_runner); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 struct CreateDirectoryParams; | 153 struct CreateDirectoryParams; |
| 150 | 154 |
| 151 // Defines set of parameters passed to an intermediate callback | 155 // Defines set of parameters passed to an intermediate callback |
| 152 // OnGetFileCompleteForOpen, during execution of OpenFile() method. | 156 // OnGetFileCompleteForOpen, during execution of OpenFile() method. |
| 153 struct GetFileCompleteForOpenParams; | 157 struct GetFileCompleteForOpenParams; |
| 154 | 158 |
| 155 // Defines set of parameters passed to intermediate callbacks during | 159 // Defines set of parameters passed to intermediate callbacks during |
| 156 // execution of GetFileByPath() method. | 160 // execution of GetFileByPath() method. |
| 157 struct GetFileFromCacheParams; | 161 struct GetFileFromCacheParams; |
| 158 | 162 |
| 159 typedef std::map<std::string /* resource_id */, GDataEntry*> | |
| 160 FileResourceIdMap; | |
| 161 | |
| 162 // Callback similar to FileOperationCallback but with a given |file_path|. | 163 // Callback similar to FileOperationCallback but with a given |file_path|. |
| 163 typedef base::Callback<void(GDataFileError error, | 164 typedef base::Callback<void(GDataFileError error, |
| 164 const FilePath& file_path)> | 165 const FilePath& file_path)> |
| 165 FilePathUpdateCallback; | 166 FilePathUpdateCallback; |
| 166 | 167 |
| 167 // Callback run as a response to LoadFeedFromServer. | 168 // Callback run as a response to LoadFeedFromServer. |
| 168 typedef base::Callback<void(GetDocumentsParams* params, | 169 typedef base::Callback<void(GetDocumentsParams* params, |
| 169 GDataFileError error)> | 170 GDataFileError error)> |
| 170 LoadDocumentFeedCallback; | 171 LoadDocumentFeedCallback; |
| 171 | 172 |
| 172 // Struct used to record UMA stats with FeedToFileResourceMap(). | |
| 173 struct FeedToFileResourceMapUmaStats; | |
| 174 | |
| 175 // Struct used for StartFileUploadOnUIThread(). | 173 // Struct used for StartFileUploadOnUIThread(). |
| 176 struct StartFileUploadParams; | 174 struct StartFileUploadParams; |
| 177 | 175 |
| 178 // Callback passed to |LoadFeedFromServer| from |Search| method. | 176 // Callback passed to |LoadFeedFromServer| from |Search| method. |
| 179 // |callback| is that should be run with data received from | 177 // |callback| is that should be run with data received from |
| 180 // |LoadFeedFromServer|. | 178 // |LoadFeedFromServer|. |
| 181 // |params| params used for getting document feed for content search. | 179 // |params| params used for getting document feed for content search. |
| 182 // |error| error code returned by |LoadFeedFromServer|. | 180 // |error| error code returned by |LoadFeedFromServer|. |
| 183 void OnSearch(const SearchCallback& callback, | 181 void OnSearch(const SearchCallback& callback, |
| 184 GetDocumentsParams* params, | 182 GetDocumentsParams* params, |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 GDataFileError RemoveEntryFromFileSystem(const FilePath& file_path); | 515 GDataFileError RemoveEntryFromFileSystem(const FilePath& file_path); |
| 518 | 516 |
| 519 // Updates whole directory structure feeds collected in |feed_list|. | 517 // Updates whole directory structure feeds collected in |feed_list|. |
| 520 // On success, returns PLATFORM_FILE_OK. Record file statistics as UMA | 518 // On success, returns PLATFORM_FILE_OK. Record file statistics as UMA |
| 521 // histograms. | 519 // histograms. |
| 522 GDataFileError UpdateFromFeed( | 520 GDataFileError UpdateFromFeed( |
| 523 const std::vector<DocumentFeed*>& feed_list, | 521 const std::vector<DocumentFeed*>& feed_list, |
| 524 int largest_changestamp, | 522 int largest_changestamp, |
| 525 int root_feed_changestamp); | 523 int root_feed_changestamp); |
| 526 | 524 |
| 527 // Updates UMA histograms about file counts. | |
| 528 void UpdateFileCountUmaHistograms( | |
| 529 const FeedToFileResourceMapUmaStats& uma_stats) const; | |
| 530 | |
| 531 // Applies the pre-processed feed from |file_map| map onto the file system. | |
| 532 // All entries in |file_map| will be erased (i.e. the map becomes empty), | |
| 533 // and values are deleted. | |
| 534 void ApplyFeedFromFileUrlMap(bool is_delta_feed, | |
| 535 int feed_changestamp, | |
| 536 FileResourceIdMap* file_map); | |
| 537 | |
| 538 // Helper function for adding new |file| from the feed into |directory|. It | |
| 539 // checks the type of file and updates |changed_dirs| if this file adding | |
| 540 // operation needs to raise directory notification update. If file is being | |
| 541 // added to |orphaned_dir_service| such notifications are not raised since | |
| 542 // we ignore such files and don't add them to the file system now. | |
| 543 // static | |
| 544 static void AddEntryToDirectoryAndCollectChangedDirectories( | |
| 545 GDataEntry* entry, | |
| 546 GDataDirectory* directory, | |
| 547 GDataDirectoryService* orphaned_dir_service, | |
| 548 std::set<FilePath>* changed_dirs); | |
| 549 | |
| 550 // Helper function for removing |entry| from |directory|. If |entry| is a | |
| 551 // directory too, it will collect all its children file paths into | |
| 552 // |changed_dirs| as well. | |
| 553 // static | |
| 554 static void RemoveEntryFromDirectoryAndCollectChangedDirectories( | |
| 555 GDataDirectory* directory, | |
| 556 GDataEntry* entry, | |
| 557 std::set<FilePath>* changed_dirs); | |
| 558 | |
| 559 // Callback for GetEntryByResourceIdAsync. | 525 // Callback for GetEntryByResourceIdAsync. |
| 560 // Removes stale entry upon upload of file. | 526 // Removes stale entry upon upload of file. |
| 561 static void RemoveStaleEntryOnUpload(const std::string& resource_id, | 527 static void RemoveStaleEntryOnUpload(const std::string& resource_id, |
| 562 GDataDirectory* parent_dir, | 528 GDataDirectory* parent_dir, |
| 563 GDataEntry* existing_entry); | 529 GDataEntry* existing_entry); |
| 564 | 530 |
| 565 // Finds directory where new |file| should be added to during feed processing. | |
| 566 // |orphaned_entries_dir| collects files/dirs that don't have a parent in | |
| 567 // either locally cached file system or in this new feed. | |
| 568 GDataDirectory* FindDirectoryForNewEntry( | |
| 569 GDataEntry* new_entry, | |
| 570 const FileResourceIdMap& file_map, | |
| 571 GDataDirectoryService* orphaned_entries); | |
| 572 | |
| 573 // Converts list of document feeds from collected feeds into | |
| 574 // FileResourceIdMap. | |
| 575 GDataFileError FeedToFileResourceMap( | |
| 576 const std::vector<DocumentFeed*>& feed_list, | |
| 577 FileResourceIdMap* file_map, | |
| 578 int* feed_changestamp, | |
| 579 FeedToFileResourceMapUmaStats* uma_stats); | |
| 580 | |
| 581 // Converts |entry_value| into GFileDocument instance and adds it | 531 // Converts |entry_value| into GFileDocument instance and adds it |
| 582 // to virtual file system at |directory_path|. | 532 // to virtual file system at |directory_path|. |
| 583 GDataFileError AddNewDirectory(const FilePath& directory_path, | 533 GDataFileError AddNewDirectory(const FilePath& directory_path, |
| 584 base::Value* entry_value); | 534 base::Value* entry_value); |
| 585 | 535 |
| 586 // Given non-existing |directory_path|, finds the first missing parent | 536 // Given non-existing |directory_path|, finds the first missing parent |
| 587 // directory of |directory_path|. | 537 // directory of |directory_path|. |
| 588 FindMissingDirectoryResult FindFirstMissingParentDirectory( | 538 FindMissingDirectoryResult FindFirstMissingParentDirectory( |
| 589 const FilePath& directory_path, | 539 const FilePath& directory_path, |
| 590 GURL* last_dir_content_url, | 540 GURL* last_dir_content_url, |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 935 base::WeakPtr<GDataFileSystem> ui_weak_ptr_; | 885 base::WeakPtr<GDataFileSystem> ui_weak_ptr_; |
| 936 | 886 |
| 937 ObserverList<Observer> observers_; | 887 ObserverList<Observer> observers_; |
| 938 | 888 |
| 939 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; | 889 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; |
| 940 }; | 890 }; |
| 941 | 891 |
| 942 } // namespace gdata | 892 } // namespace gdata |
| 943 | 893 |
| 944 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ | 894 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ |
| OLD | NEW |