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 "components/drive/job_scheduler.h" | 5 #include "components/drive/job_scheduler.h" |
6 | 6 |
| 7 #include <stddef.h> |
| 8 |
7 #include <algorithm> | 9 #include <algorithm> |
8 | 10 |
9 #include "base/files/file_util.h" | 11 #include "base/files/file_util.h" |
10 #include "base/metrics/histogram.h" | 12 #include "base/metrics/histogram.h" |
11 #include "base/prefs/pref_service.h" | 13 #include "base/prefs/pref_service.h" |
12 #include "base/rand_util.h" | 14 #include "base/rand_util.h" |
13 #include "base/strings/string_number_conversions.h" | 15 #include "base/strings/string_number_conversions.h" |
14 #include "base/strings/stringprintf.h" | 16 #include "base/strings/stringprintf.h" |
15 #include "base/thread_task_runner_handle.h" | 17 #include "base/thread_task_runner_handle.h" |
16 #include "components/drive/drive_pref_names.h" | 18 #include "components/drive/drive_pref_names.h" |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 const ResumeUploadFileParams& params) { | 133 const ResumeUploadFileParams& params) { |
132 return uploader->ResumeUploadFile(params.upload_location, | 134 return uploader->ResumeUploadFile(params.upload_location, |
133 params.local_file_path, | 135 params.local_file_path, |
134 params.content_type, | 136 params.content_type, |
135 params.callback, | 137 params.callback, |
136 params.progress_callback); | 138 params.progress_callback); |
137 } | 139 } |
138 | 140 |
139 // Collects information about sizes of files copied or moved from or to Drive | 141 // Collects information about sizes of files copied or moved from or to Drive |
140 // Otherwise does nothing. Temporary for crbug.com/229650. | 142 // Otherwise does nothing. Temporary for crbug.com/229650. |
141 void CollectCopyHistogramSample(const std::string& histogram_name, int64 size) { | 143 void CollectCopyHistogramSample(const std::string& histogram_name, |
| 144 int64_t size) { |
142 base::HistogramBase* const counter = | 145 base::HistogramBase* const counter = |
143 base::Histogram::FactoryGet(histogram_name, | 146 base::Histogram::FactoryGet(histogram_name, |
144 1, | 147 1, |
145 1024 * 1024 /* 1 GB */, | 148 1024 * 1024 /* 1 GB */, |
146 50, | 149 50, |
147 base::Histogram::kUmaTargetedHistogramFlag); | 150 base::Histogram::kUmaTargetedHistogramFlag); |
148 counter->Add(size / 1024); | 151 counter->Add(size / 1024); |
149 } | 152 } |
150 | 153 |
151 } // namespace | 154 } // namespace |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 search_query, | 331 search_query, |
329 base::Bind(&JobScheduler::OnGetFileListJobDone, | 332 base::Bind(&JobScheduler::OnGetFileListJobDone, |
330 weak_ptr_factory_.GetWeakPtr(), | 333 weak_ptr_factory_.GetWeakPtr(), |
331 new_job->job_info.job_id, | 334 new_job->job_info.job_id, |
332 callback)); | 335 callback)); |
333 new_job->abort_callback = CreateErrorRunCallback(callback); | 336 new_job->abort_callback = CreateErrorRunCallback(callback); |
334 StartJob(new_job); | 337 StartJob(new_job); |
335 } | 338 } |
336 | 339 |
337 void JobScheduler::GetChangeList( | 340 void JobScheduler::GetChangeList( |
338 int64 start_changestamp, | 341 int64_t start_changestamp, |
339 const google_apis::ChangeListCallback& callback) { | 342 const google_apis::ChangeListCallback& callback) { |
340 DCHECK(thread_checker_.CalledOnValidThread()); | 343 DCHECK(thread_checker_.CalledOnValidThread()); |
341 DCHECK(!callback.is_null()); | 344 DCHECK(!callback.is_null()); |
342 | 345 |
343 JobEntry* new_job = CreateNewJob(TYPE_GET_CHANGE_LIST); | 346 JobEntry* new_job = CreateNewJob(TYPE_GET_CHANGE_LIST); |
344 new_job->task = base::Bind( | 347 new_job->task = base::Bind( |
345 &DriveServiceInterface::GetChangeList, | 348 &DriveServiceInterface::GetChangeList, |
346 base::Unretained(drive_service_), | 349 base::Unretained(drive_service_), |
347 start_changestamp, | 350 start_changestamp, |
348 base::Bind(&JobScheduler::OnGetChangeListJobDone, | 351 base::Bind(&JobScheduler::OnGetChangeListJobDone, |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
568 base::Bind(&JobScheduler::OnGetFileResourceJobDone, | 571 base::Bind(&JobScheduler::OnGetFileResourceJobDone, |
569 weak_ptr_factory_.GetWeakPtr(), | 572 weak_ptr_factory_.GetWeakPtr(), |
570 new_job->job_info.job_id, | 573 new_job->job_info.job_id, |
571 callback)); | 574 callback)); |
572 new_job->abort_callback = CreateErrorRunCallback(callback); | 575 new_job->abort_callback = CreateErrorRunCallback(callback); |
573 StartJob(new_job); | 576 StartJob(new_job); |
574 } | 577 } |
575 | 578 |
576 JobID JobScheduler::DownloadFile( | 579 JobID JobScheduler::DownloadFile( |
577 const base::FilePath& virtual_path, | 580 const base::FilePath& virtual_path, |
578 int64 expected_file_size, | 581 int64_t expected_file_size, |
579 const base::FilePath& local_cache_path, | 582 const base::FilePath& local_cache_path, |
580 const std::string& resource_id, | 583 const std::string& resource_id, |
581 const ClientContext& context, | 584 const ClientContext& context, |
582 const google_apis::DownloadActionCallback& download_action_callback, | 585 const google_apis::DownloadActionCallback& download_action_callback, |
583 const google_apis::GetContentCallback& get_content_callback) { | 586 const google_apis::GetContentCallback& get_content_callback) { |
584 DCHECK(thread_checker_.CalledOnValidThread()); | 587 DCHECK(thread_checker_.CalledOnValidThread()); |
585 | 588 |
586 // Temporary histogram for crbug.com/229650. | 589 // Temporary histogram for crbug.com/229650. |
587 CollectCopyHistogramSample("Drive.DownloadFromDriveFileSize", | 590 CollectCopyHistogramSample("Drive.DownloadFromDriveFileSize", |
588 expected_file_size); | 591 expected_file_size); |
(...skipping 15 matching lines...) Expand all Loading... |
604 base::Bind(&JobScheduler::UpdateProgress, | 607 base::Bind(&JobScheduler::UpdateProgress, |
605 weak_ptr_factory_.GetWeakPtr(), | 608 weak_ptr_factory_.GetWeakPtr(), |
606 new_job->job_info.job_id)); | 609 new_job->job_info.job_id)); |
607 new_job->abort_callback = CreateErrorRunCallback(download_action_callback); | 610 new_job->abort_callback = CreateErrorRunCallback(download_action_callback); |
608 StartJob(new_job); | 611 StartJob(new_job); |
609 return new_job->job_info.job_id; | 612 return new_job->job_info.job_id; |
610 } | 613 } |
611 | 614 |
612 void JobScheduler::UploadNewFile( | 615 void JobScheduler::UploadNewFile( |
613 const std::string& parent_resource_id, | 616 const std::string& parent_resource_id, |
614 int64 expected_file_size, | 617 int64_t expected_file_size, |
615 const base::FilePath& drive_file_path, | 618 const base::FilePath& drive_file_path, |
616 const base::FilePath& local_file_path, | 619 const base::FilePath& local_file_path, |
617 const std::string& title, | 620 const std::string& title, |
618 const std::string& content_type, | 621 const std::string& content_type, |
619 const UploadNewFileOptions& options, | 622 const UploadNewFileOptions& options, |
620 const ClientContext& context, | 623 const ClientContext& context, |
621 const google_apis::FileResourceCallback& callback) { | 624 const google_apis::FileResourceCallback& callback) { |
622 DCHECK(thread_checker_.CalledOnValidThread()); | 625 DCHECK(thread_checker_.CalledOnValidThread()); |
623 | 626 |
624 JobEntry* new_job = CreateNewJob(TYPE_UPLOAD_NEW_FILE); | 627 JobEntry* new_job = CreateNewJob(TYPE_UPLOAD_NEW_FILE); |
(...skipping 23 matching lines...) Expand all Loading... |
648 params.progress_callback = base::Bind(&JobScheduler::UpdateProgress, | 651 params.progress_callback = base::Bind(&JobScheduler::UpdateProgress, |
649 weak_ptr_factory_.GetWeakPtr(), | 652 weak_ptr_factory_.GetWeakPtr(), |
650 new_job->job_info.job_id); | 653 new_job->job_info.job_id); |
651 new_job->task = base::Bind(&RunUploadNewFile, uploader_.get(), params); | 654 new_job->task = base::Bind(&RunUploadNewFile, uploader_.get(), params); |
652 new_job->abort_callback = CreateErrorRunCallback(callback); | 655 new_job->abort_callback = CreateErrorRunCallback(callback); |
653 StartJob(new_job); | 656 StartJob(new_job); |
654 } | 657 } |
655 | 658 |
656 void JobScheduler::UploadExistingFile( | 659 void JobScheduler::UploadExistingFile( |
657 const std::string& resource_id, | 660 const std::string& resource_id, |
658 int64 expected_file_size, | 661 int64_t expected_file_size, |
659 const base::FilePath& drive_file_path, | 662 const base::FilePath& drive_file_path, |
660 const base::FilePath& local_file_path, | 663 const base::FilePath& local_file_path, |
661 const std::string& content_type, | 664 const std::string& content_type, |
662 const UploadExistingFileOptions& options, | 665 const UploadExistingFileOptions& options, |
663 const ClientContext& context, | 666 const ClientContext& context, |
664 const google_apis::FileResourceCallback& callback) { | 667 const google_apis::FileResourceCallback& callback) { |
665 DCHECK(thread_checker_.CalledOnValidThread()); | 668 DCHECK(thread_checker_.CalledOnValidThread()); |
666 | 669 |
667 JobEntry* new_job = CreateNewJob(TYPE_UPLOAD_EXISTING_FILE); | 670 JobEntry* new_job = CreateNewJob(TYPE_UPLOAD_EXISTING_FILE); |
668 new_job->job_info.file_path = drive_file_path; | 671 new_job->job_info.file_path = drive_file_path; |
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1072 // to resume. Restore the original task. | 1075 // to resume. Restore the original task. |
1073 JobEntry* job_entry = job_map_.Lookup(job_id); | 1076 JobEntry* job_entry = job_map_.Lookup(job_id); |
1074 DCHECK(job_entry); | 1077 DCHECK(job_entry); |
1075 job_entry->task = original_task; | 1078 job_entry->task = original_task; |
1076 } | 1079 } |
1077 | 1080 |
1078 if (OnJobDone(job_id, error)) | 1081 if (OnJobDone(job_id, error)) |
1079 callback.Run(error, entry.Pass()); | 1082 callback.Run(error, entry.Pass()); |
1080 } | 1083 } |
1081 | 1084 |
1082 void JobScheduler::UpdateProgress(JobID job_id, int64 progress, int64 total) { | 1085 void JobScheduler::UpdateProgress(JobID job_id, |
| 1086 int64_t progress, |
| 1087 int64_t total) { |
1083 JobEntry* job_entry = job_map_.Lookup(job_id); | 1088 JobEntry* job_entry = job_map_.Lookup(job_id); |
1084 DCHECK(job_entry); | 1089 DCHECK(job_entry); |
1085 | 1090 |
1086 job_entry->job_info.num_completed_bytes = progress; | 1091 job_entry->job_info.num_completed_bytes = progress; |
1087 if (total != -1) | 1092 if (total != -1) |
1088 job_entry->job_info.num_total_bytes = total; | 1093 job_entry->job_info.num_total_bytes = total; |
1089 NotifyJobUpdated(job_entry->job_info); | 1094 NotifyJobUpdated(job_entry->job_info); |
1090 } | 1095 } |
1091 | 1096 |
1092 void JobScheduler::OnConnectionTypeChanged( | 1097 void JobScheduler::OnConnectionTypeChanged( |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1181 case FILE_QUEUE: | 1186 case FILE_QUEUE: |
1182 return "FILE_QUEUE"; | 1187 return "FILE_QUEUE"; |
1183 case NUM_QUEUES: | 1188 case NUM_QUEUES: |
1184 break; // This value is just a sentinel. Should never be used. | 1189 break; // This value is just a sentinel. Should never be used. |
1185 } | 1190 } |
1186 NOTREACHED(); | 1191 NOTREACHED(); |
1187 return ""; | 1192 return ""; |
1188 } | 1193 } |
1189 | 1194 |
1190 } // namespace drive | 1195 } // namespace drive |
OLD | NEW |