| 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 | 31 |
| 32 namespace gdata { | 32 namespace gdata { |
| 33 | 33 |
| 34 class DocumentsServiceInterface; | 34 class DocumentsServiceInterface; |
| 35 class DriveWebAppsRegistryInterface; | 35 class DriveWebAppsRegistryInterface; |
| 36 class GDataWapiFeedLoader; | 36 class GDataWapiFeedLoader; |
| 37 struct GetDocumentsParams; | 37 struct GetDocumentsParams; |
| 38 struct GetDocumentsUiState; | 38 struct GetDocumentsUiState; |
| 39 struct UploadFileInfo; | 39 struct UploadFileInfo; |
| 40 | 40 |
| 41 namespace { | |
| 42 struct LoadRootFeedParams; | |
| 43 } // namespace | |
| 44 | |
| 45 // Callback run as a response to LoadFromServer. | 41 // Callback run as a response to LoadFromServer. |
| 46 // | 42 // |
| 47 // TODO(satorux): Move this to a new file: crbug.com/138268 | 43 // TODO(satorux): Move this to a new file: crbug.com/138268 |
| 48 typedef base::Callback<void(GetDocumentsParams* params, | 44 typedef base::Callback<void(GetDocumentsParams* params, |
| 49 GDataFileError error)> | 45 GDataFileError error)> |
| 50 LoadDocumentFeedCallback; | 46 LoadDocumentFeedCallback; |
| 51 | 47 |
| 52 // GDataWapiFeedLoader is used to load feeds from WAPI (codename for | 48 // GDataWapiFeedLoader is used to load feeds from WAPI (codename for |
| 53 // Documents List API) and load the cached proto file. | 49 // Documents List API) and load the cached proto file. |
| 54 // | 50 // |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 // |start_changestamp| and |root_feed_changestamp|. | 132 // |start_changestamp| and |root_feed_changestamp|. |
| 137 GDataFileError UpdateFromFeed( | 133 GDataFileError UpdateFromFeed( |
| 138 const std::vector<DocumentFeed*>& feed_list, | 134 const std::vector<DocumentFeed*>& feed_list, |
| 139 int start_changestamp, | 135 int start_changestamp, |
| 140 int root_feed_changestamp); | 136 int root_feed_changestamp); |
| 141 | 137 |
| 142 private: | 138 private: |
| 143 // Callback for handling root directory refresh from the cache. | 139 // Callback for handling root directory refresh from the cache. |
| 144 void OnProtoLoaded(LoadRootFeedParams* params); | 140 void OnProtoLoaded(LoadRootFeedParams* params); |
| 145 | 141 |
| 142 // Continues handling root directory refresh after the directory service |
| 143 // is fully loaded. |
| 144 void ContinueWithInitializedDirectoryService(LoadRootFeedParams* params, |
| 145 GDataFileError error); |
| 146 |
| 146 // Helper callback for handling results of metadata retrieval initiated from | 147 // Helper callback for handling results of metadata retrieval initiated from |
| 147 // ReloadFeedFromServerIfNeeded(). This method makes a decision about fetching | 148 // ReloadFeedFromServerIfNeeded(). This method makes a decision about fetching |
| 148 // the content of the root feed during the root directory refresh process. | 149 // the content of the root feed during the root directory refresh process. |
| 149 void OnGetAccountMetadata( | 150 void OnGetAccountMetadata( |
| 150 ContentOrigin initial_origin, | 151 ContentOrigin initial_origin, |
| 151 int local_changestamp, | 152 int local_changestamp, |
| 152 const FilePath& search_file_path, | 153 const FilePath& search_file_path, |
| 153 const FindEntryCallback& callback, | 154 const FindEntryCallback& callback, |
| 154 GDataErrorCode status, | 155 GDataErrorCode status, |
| 155 scoped_ptr<base::Value> feed_data); | 156 scoped_ptr<base::Value> feed_data); |
| 156 | 157 |
| 157 // Callback for handling feed content fetching while searching for file info. | 158 // Callback for handling feed content fetching while searching for file info. |
| 158 // This callback is invoked after async feed fetch operation that was | 159 // This callback is invoked after async feed fetch operation that was |
| 159 // invoked by StartDirectoryRefresh() completes. This callback will update | 160 // invoked by StartDirectoryRefresh() completes. This callback will update |
| 160 // the content of the refreshed directory object and continue initially | 161 // the content of the refreshed directory object and continue initially |
| 161 // started FindEntryByPath() request. | 162 // started FindEntryByPath() request. |
| 162 void OnFeedFromServerLoaded(GetDocumentsParams* params, | 163 void OnFeedFromServerLoaded(GetDocumentsParams* params, |
| 163 GDataFileError error); | 164 GDataFileError error); |
| 164 | 165 |
| 165 // Callback for handling response from |GDataDocumentsService::GetDocuments|. | 166 // Callback for handling response from |GDataDocumentsService::GetDocuments|. |
| 166 // Invokes |callback| when done. | 167 // Invokes |callback| when done. |
| 167 void OnGetDocuments( | 168 void OnGetDocuments( |
| 168 ContentOrigin initial_origin, | 169 ContentOrigin initial_origin, |
| 169 const LoadDocumentFeedCallback& callback, | 170 const LoadDocumentFeedCallback& callback, |
| 170 GetDocumentsParams* params, | 171 GetDocumentsParams* params, |
| 171 base::TimeTicks start_time, | 172 base::TimeTicks start_time, |
| 172 GDataErrorCode status, | 173 GDataErrorCode status, |
| 173 scoped_ptr<base::Value> data); | 174 scoped_ptr<base::Value> data); |
| 174 | 175 |
| 176 // Save filesystem to disk. |
| 177 void SaveFileSystem(); |
| 178 |
| 175 // Callback for handling UI updates caused by document fetching. | 179 // Callback for handling UI updates caused by document fetching. |
| 176 void OnNotifyDocumentFeedFetched( | 180 void OnNotifyDocumentFeedFetched( |
| 177 base::WeakPtr<GetDocumentsUiState> ui_state); | 181 base::WeakPtr<GetDocumentsUiState> ui_state); |
| 178 | 182 |
| 179 // Save filesystem as proto file. | |
| 180 void SaveFileSystemAsProto(); | |
| 181 | |
| 182 GDataDirectoryService* directory_service_; // Not owned. | 183 GDataDirectoryService* directory_service_; // Not owned. |
| 183 DocumentsServiceInterface* documents_service_; // Not owned. | 184 DocumentsServiceInterface* documents_service_; // Not owned. |
| 184 DriveWebAppsRegistryInterface* webapps_registry_; // Not owned. | 185 DriveWebAppsRegistryInterface* webapps_registry_; // Not owned. |
| 185 GDataCache* cache_; // Not owned. | 186 GDataCache* cache_; // Not owned. |
| 186 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; | 187 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; |
| 187 ObserverList<Observer> observers_; | 188 ObserverList<Observer> observers_; |
| 188 | 189 |
| 189 // Note: This should remain the last member so it'll be destroyed and | 190 // Note: This should remain the last member so it'll be destroyed and |
| 190 // invalidate its weak pointers before any other members are destroyed. | 191 // invalidate its weak pointers before any other members are destroyed. |
| 191 base::WeakPtrFactory<GDataWapiFeedLoader> weak_ptr_factory_; | 192 base::WeakPtrFactory<GDataWapiFeedLoader> weak_ptr_factory_; |
| (...skipping 778 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 970 // invalidate the weak pointers before any other members are destroyed. | 971 // invalidate the weak pointers before any other members are destroyed. |
| 971 base::WeakPtrFactory<GDataFileSystem> ui_weak_ptr_factory_; | 972 base::WeakPtrFactory<GDataFileSystem> ui_weak_ptr_factory_; |
| 972 // Unlike other classes, we need this as we need this to redirect a task | 973 // Unlike other classes, we need this as we need this to redirect a task |
| 973 // from IO thread to UI thread. | 974 // from IO thread to UI thread. |
| 974 base::WeakPtr<GDataFileSystem> ui_weak_ptr_; | 975 base::WeakPtr<GDataFileSystem> ui_weak_ptr_; |
| 975 }; | 976 }; |
| 976 | 977 |
| 977 } // namespace gdata | 978 } // namespace gdata |
| 978 | 979 |
| 979 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ | 980 #endif // CHROME_BROWSER_CHROMEOS_GDATA_GDATA_FILE_SYSTEM_H_ |
| OLD | NEW |