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/drive/drive_scheduler.h" | 5 #include "chrome/browser/chromeos/drive/drive_scheduler.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 | 8 |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 new_job->start_changestamp = start_changestamp; | 146 new_job->start_changestamp = start_changestamp; |
147 new_job->search_query = search_query; | 147 new_job->search_query = search_query; |
148 new_job->directory_resource_id = directory_resource_id; | 148 new_job->directory_resource_id = directory_resource_id; |
149 new_job->get_resource_list_callback = callback; | 149 new_job->get_resource_list_callback = callback; |
150 | 150 |
151 QueueJob(new_job.Pass()); | 151 QueueJob(new_job.Pass()); |
152 | 152 |
153 StartJobLoop(GetJobQueueType(TYPE_GET_RESOURCE_LIST)); | 153 StartJobLoop(GetJobQueueType(TYPE_GET_RESOURCE_LIST)); |
154 } | 154 } |
155 | 155 |
| 156 void DriveScheduler::GetAllResourceList( |
| 157 const google_apis::GetResourceListCallback& callback) { |
| 158 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 159 DCHECK(!callback.is_null()); |
| 160 |
| 161 scoped_ptr<QueueEntry> new_job(new QueueEntry(TYPE_GET_ALL_RESOURCE_LIST)); |
| 162 new_job->get_resource_list_callback = callback; |
| 163 |
| 164 QueueJob(new_job.Pass()); |
| 165 |
| 166 StartJobLoop(GetJobQueueType(TYPE_GET_ALL_RESOURCE_LIST)); |
| 167 } |
| 168 |
| 169 void DriveScheduler::GetResourceListInDirectory( |
| 170 const std::string& directory_resource_id, |
| 171 const google_apis::GetResourceListCallback& callback) { |
| 172 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 173 DCHECK(!callback.is_null()); |
| 174 |
| 175 scoped_ptr<QueueEntry> new_job( |
| 176 new QueueEntry(TYPE_GET_RESOURCE_LIST_IN_DIRECTORY)); |
| 177 new_job->directory_resource_id = directory_resource_id; |
| 178 new_job->get_resource_list_callback = callback; |
| 179 |
| 180 QueueJob(new_job.Pass()); |
| 181 |
| 182 StartJobLoop(GetJobQueueType(TYPE_GET_RESOURCE_LIST_IN_DIRECTORY)); |
| 183 } |
| 184 |
| 185 void DriveScheduler::Search( |
| 186 const std::string& search_query, |
| 187 const google_apis::GetResourceListCallback& callback) { |
| 188 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 189 DCHECK(!callback.is_null()); |
| 190 |
| 191 scoped_ptr<QueueEntry> new_job(new QueueEntry(TYPE_SEARCH)); |
| 192 new_job->search_query = search_query; |
| 193 new_job->get_resource_list_callback = callback; |
| 194 |
| 195 QueueJob(new_job.Pass()); |
| 196 |
| 197 StartJobLoop(GetJobQueueType(TYPE_SEARCH)); |
| 198 } |
| 199 |
| 200 void DriveScheduler::GetChangeList( |
| 201 int64 start_changestamp, |
| 202 const google_apis::GetResourceListCallback& callback) { |
| 203 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 204 DCHECK(!callback.is_null()); |
| 205 |
| 206 scoped_ptr<QueueEntry> new_job(new QueueEntry(TYPE_GET_CHANGE_LIST)); |
| 207 new_job->start_changestamp = start_changestamp; |
| 208 new_job->get_resource_list_callback = callback; |
| 209 |
| 210 QueueJob(new_job.Pass()); |
| 211 |
| 212 StartJobLoop(GetJobQueueType(TYPE_GET_CHANGE_LIST)); |
| 213 } |
| 214 |
| 215 void DriveScheduler::ContinueGetResourceList( |
| 216 const GURL& feed_url, |
| 217 const google_apis::GetResourceListCallback& callback) { |
| 218 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 219 DCHECK(!callback.is_null()); |
| 220 |
| 221 scoped_ptr<QueueEntry> new_job( |
| 222 new QueueEntry(TYPE_CONTINUE_GET_RESOURCE_LIST)); |
| 223 new_job->feed_url = feed_url; |
| 224 new_job->get_resource_list_callback = callback; |
| 225 |
| 226 QueueJob(new_job.Pass()); |
| 227 |
| 228 StartJobLoop(GetJobQueueType(TYPE_CONTINUE_GET_RESOURCE_LIST)); |
| 229 } |
| 230 |
156 void DriveScheduler::GetResourceEntry( | 231 void DriveScheduler::GetResourceEntry( |
157 const std::string& resource_id, | 232 const std::string& resource_id, |
158 const DriveClientContext& context, | 233 const DriveClientContext& context, |
159 const google_apis::GetResourceEntryCallback& callback) { | 234 const google_apis::GetResourceEntryCallback& callback) { |
160 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 235 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
161 DCHECK(!callback.is_null()); | 236 DCHECK(!callback.is_null()); |
162 | 237 |
163 scoped_ptr<QueueEntry> new_job(new QueueEntry(TYPE_GET_RESOURCE_ENTRY)); | 238 scoped_ptr<QueueEntry> new_job(new QueueEntry(TYPE_GET_RESOURCE_ENTRY)); |
164 new_job->resource_id = resource_id; | 239 new_job->resource_id = resource_id; |
165 new_job->context = context; | 240 new_job->context = context; |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 entry->feed_url, | 489 entry->feed_url, |
415 entry->start_changestamp, | 490 entry->start_changestamp, |
416 entry->search_query, | 491 entry->search_query, |
417 entry->directory_resource_id, | 492 entry->directory_resource_id, |
418 base::Bind(&DriveScheduler::OnGetResourceListJobDone, | 493 base::Bind(&DriveScheduler::OnGetResourceListJobDone, |
419 weak_ptr_factory_.GetWeakPtr(), | 494 weak_ptr_factory_.GetWeakPtr(), |
420 base::Passed(&queue_entry))); | 495 base::Passed(&queue_entry))); |
421 } | 496 } |
422 break; | 497 break; |
423 | 498 |
| 499 case TYPE_GET_ALL_RESOURCE_LIST: { |
| 500 drive_service_->GetAllResourceList( |
| 501 base::Bind(&DriveScheduler::OnGetResourceListJobDone, |
| 502 weak_ptr_factory_.GetWeakPtr(), |
| 503 base::Passed(&queue_entry))); |
| 504 } |
| 505 break; |
| 506 |
| 507 case TYPE_GET_RESOURCE_LIST_IN_DIRECTORY: { |
| 508 drive_service_->GetResourceListInDirectory( |
| 509 entry->directory_resource_id, |
| 510 base::Bind(&DriveScheduler::OnGetResourceListJobDone, |
| 511 weak_ptr_factory_.GetWeakPtr(), |
| 512 base::Passed(&queue_entry))); |
| 513 } |
| 514 break; |
| 515 |
| 516 case TYPE_SEARCH: { |
| 517 drive_service_->Search( |
| 518 entry->search_query, |
| 519 base::Bind(&DriveScheduler::OnGetResourceListJobDone, |
| 520 weak_ptr_factory_.GetWeakPtr(), |
| 521 base::Passed(&queue_entry))); |
| 522 } |
| 523 break; |
| 524 |
| 525 case TYPE_GET_CHANGE_LIST: { |
| 526 drive_service_->GetChangeList( |
| 527 entry->start_changestamp, |
| 528 base::Bind(&DriveScheduler::OnGetResourceListJobDone, |
| 529 weak_ptr_factory_.GetWeakPtr(), |
| 530 base::Passed(&queue_entry))); |
| 531 } |
| 532 break; |
| 533 |
| 534 case TYPE_CONTINUE_GET_RESOURCE_LIST: { |
| 535 drive_service_->ContinueGetResourceList( |
| 536 entry->feed_url, |
| 537 base::Bind(&DriveScheduler::OnGetResourceListJobDone, |
| 538 weak_ptr_factory_.GetWeakPtr(), |
| 539 base::Passed(&queue_entry))); |
| 540 } |
| 541 break; |
| 542 |
424 case TYPE_GET_RESOURCE_ENTRY: { | 543 case TYPE_GET_RESOURCE_ENTRY: { |
425 drive_service_->GetResourceEntry( | 544 drive_service_->GetResourceEntry( |
426 entry->resource_id, | 545 entry->resource_id, |
427 base::Bind(&DriveScheduler::OnGetResourceEntryJobDone, | 546 base::Bind(&DriveScheduler::OnGetResourceEntryJobDone, |
428 weak_ptr_factory_.GetWeakPtr(), | 547 weak_ptr_factory_.GetWeakPtr(), |
429 base::Passed(&queue_entry))); | 548 base::Passed(&queue_entry))); |
430 } | 549 } |
431 break; | 550 break; |
432 | 551 |
433 case TYPE_DELETE_RESOURCE: { | 552 case TYPE_DELETE_RESOURCE: { |
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
790 } | 909 } |
791 } | 910 } |
792 } | 911 } |
793 | 912 |
794 DriveScheduler::QueueType DriveScheduler::GetJobQueueType(JobType type) { | 913 DriveScheduler::QueueType DriveScheduler::GetJobQueueType(JobType type) { |
795 switch (type) { | 914 switch (type) { |
796 case TYPE_GET_ABOUT_RESOURCE: | 915 case TYPE_GET_ABOUT_RESOURCE: |
797 case TYPE_GET_ACCOUNT_METADATA: | 916 case TYPE_GET_ACCOUNT_METADATA: |
798 case TYPE_GET_APP_LIST: | 917 case TYPE_GET_APP_LIST: |
799 case TYPE_GET_RESOURCE_LIST: | 918 case TYPE_GET_RESOURCE_LIST: |
| 919 case TYPE_GET_ALL_RESOURCE_LIST: |
| 920 case TYPE_GET_RESOURCE_LIST_IN_DIRECTORY: |
| 921 case TYPE_SEARCH: |
| 922 case TYPE_GET_CHANGE_LIST: |
| 923 case TYPE_CONTINUE_GET_RESOURCE_LIST: |
800 case TYPE_GET_RESOURCE_ENTRY: | 924 case TYPE_GET_RESOURCE_ENTRY: |
801 case TYPE_DELETE_RESOURCE: | 925 case TYPE_DELETE_RESOURCE: |
802 case TYPE_COPY_HOSTED_DOCUMENT: | 926 case TYPE_COPY_HOSTED_DOCUMENT: |
803 case TYPE_RENAME_RESOURCE: | 927 case TYPE_RENAME_RESOURCE: |
804 case TYPE_ADD_RESOURCE_TO_DIRECTORY: | 928 case TYPE_ADD_RESOURCE_TO_DIRECTORY: |
805 case TYPE_REMOVE_RESOURCE_FROM_DIRECTORY: | 929 case TYPE_REMOVE_RESOURCE_FROM_DIRECTORY: |
806 case TYPE_ADD_NEW_DIRECTORY: | 930 case TYPE_ADD_NEW_DIRECTORY: |
807 return METADATA_QUEUE; | 931 return METADATA_QUEUE; |
808 | 932 |
809 case TYPE_DOWNLOAD_FILE: | 933 case TYPE_DOWNLOAD_FILE: |
810 case TYPE_UPLOAD_NEW_FILE: | 934 case TYPE_UPLOAD_NEW_FILE: |
811 case TYPE_UPLOAD_EXISTING_FILE: | 935 case TYPE_UPLOAD_EXISTING_FILE: |
812 return FILE_QUEUE; | 936 return FILE_QUEUE; |
813 } | 937 } |
814 NOTREACHED(); | 938 NOTREACHED(); |
815 return FILE_QUEUE; | 939 return FILE_QUEUE; |
816 } | 940 } |
817 | 941 |
818 } // namespace drive | 942 } // namespace drive |
OLD | NEW |