| 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 #include "chrome/browser/chromeos/gdata/gdata_file_system.h" | 5 #include "chrome/browser/chromeos/gdata/gdata_file_system.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <sys/stat.h> | 8 #include <sys/stat.h> |
| 9 | 9 |
| 10 #include <set> | 10 #include <set> |
| (...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 825 }; | 825 }; |
| 826 | 826 |
| 827 // Returns callback which runs the given |callback| on the current thread. | 827 // Returns callback which runs the given |callback| on the current thread. |
| 828 template<typename CallbackType> | 828 template<typename CallbackType> |
| 829 CallbackType CreateRelayCallback(const CallbackType& callback) { | 829 CallbackType CreateRelayCallback(const CallbackType& callback) { |
| 830 return base::Bind(&RelayCallback<CallbackType>::Run, | 830 return base::Bind(&RelayCallback<CallbackType>::Run, |
| 831 base::MessageLoopProxy::current(), | 831 base::MessageLoopProxy::current(), |
| 832 callback); | 832 callback); |
| 833 } | 833 } |
| 834 | 834 |
| 835 // Callback used to find a directory element for file system updates. |
| 836 void ReadOnlyFindEntryCallback(GDataEntry** out, |
| 837 base::PlatformFileError error, |
| 838 GDataEntry* entry) { |
| 839 if (error == base::PLATFORM_FILE_OK) |
| 840 *out = entry; |
| 841 } |
| 842 |
| 835 } // namespace | 843 } // namespace |
| 836 | 844 |
| 837 // GDataFileSystem::GetDocumentsParams struct implementation. | 845 // GDataFileSystem::GetDocumentsParams struct implementation. |
| 838 | 846 |
| 839 GDataFileSystem::GetDocumentsParams::GetDocumentsParams( | 847 GDataFileSystem::GetDocumentsParams::GetDocumentsParams( |
| 840 int start_changestamp, | 848 int start_changestamp, |
| 841 int root_feed_changestamp, | 849 int root_feed_changestamp, |
| 842 std::vector<DocumentFeed*>* feed_list, | 850 std::vector<DocumentFeed*>* feed_list, |
| 843 bool should_fetch_multiple_feeds, | 851 bool should_fetch_multiple_feeds, |
| 844 const FilePath& search_file_path, | 852 const FilePath& search_file_path, |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1041 update_timer_.Stop(); | 1049 update_timer_.Stop(); |
| 1042 } | 1050 } |
| 1043 | 1051 |
| 1044 void GDataFileSystem::Authenticate(const AuthStatusCallback& callback) { | 1052 void GDataFileSystem::Authenticate(const AuthStatusCallback& callback) { |
| 1045 // TokenFetcher, used in DocumentsService, must be run on UI thread. | 1053 // TokenFetcher, used in DocumentsService, must be run on UI thread. |
| 1046 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1054 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 1047 | 1055 |
| 1048 documents_service_->Authenticate(callback); | 1056 documents_service_->Authenticate(callback); |
| 1049 } | 1057 } |
| 1050 | 1058 |
| 1051 void GDataFileSystem::FindEntryByResourceIdSync( | 1059 void GDataFileSystem::FindEntryByResourceId(const std::string& resource_id, |
| 1060 const FindEntryCallback& callback) { |
| 1061 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || |
| 1062 BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 1063 RunTaskOnUIThread( |
| 1064 base::Bind(&GDataFileSystem::FindEntryByResourceIdOnUIThread, |
| 1065 ui_weak_ptr_, |
| 1066 resource_id, |
| 1067 CreateRelayCallback(callback))); |
| 1068 } |
| 1069 |
| 1070 void GDataFileSystem::FindEntryByResourceIdOnUIThread( |
| 1052 const std::string& resource_id, | 1071 const std::string& resource_id, |
| 1053 const FindEntryCallback& callback) { | 1072 const FindEntryCallback& callback) { |
| 1073 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 1074 |
| 1054 base::AutoLock lock(lock_); // To access root. | 1075 base::AutoLock lock(lock_); // To access root. |
| 1055 | |
| 1056 GDataFile* file = NULL; | 1076 GDataFile* file = NULL; |
| 1057 GDataEntry* entry = root_->GetEntryByResourceId(resource_id); | 1077 GDataEntry* entry = root_->GetEntryByResourceId(resource_id); |
| 1058 if (entry) | 1078 if (entry) |
| 1059 file = entry->AsGDataFile(); | 1079 file = entry->AsGDataFile(); |
| 1060 | 1080 |
| 1061 if (file) | 1081 if (file) |
| 1062 callback.Run(base::PLATFORM_FILE_OK, file); | 1082 callback.Run(base::PLATFORM_FILE_OK, file); |
| 1063 else | 1083 else |
| 1064 callback.Run(base::PLATFORM_FILE_ERROR_NOT_FOUND, NULL); | 1084 callback.Run(base::PLATFORM_FILE_ERROR_NOT_FOUND, NULL); |
| 1065 } | 1085 } |
| (...skipping 4118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5184 base::PlatformFileError error, | 5204 base::PlatformFileError error, |
| 5185 const std::string& resource_id, | 5205 const std::string& resource_id, |
| 5186 const std::string& md5) { | 5206 const std::string& md5) { |
| 5187 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 5207 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 5188 | 5208 |
| 5189 if (!callback.is_null()) | 5209 if (!callback.is_null()) |
| 5190 callback.Run(error); | 5210 callback.Run(error); |
| 5191 } | 5211 } |
| 5192 | 5212 |
| 5193 } // namespace gdata | 5213 } // namespace gdata |
| OLD | NEW |