Index: chrome/browser/chromeos/drive/drive_scheduler.cc |
diff --git a/chrome/browser/chromeos/drive/drive_scheduler.cc b/chrome/browser/chromeos/drive/drive_scheduler.cc |
index 5400e121dc7cc5a1d028214ce408c2f3a3cd276c..2a4ea42e485bc9475c1c0def7086b928f5f28742 100644 |
--- a/chrome/browser/chromeos/drive/drive_scheduler.cc |
+++ b/chrome/browser/chromeos/drive/drive_scheduler.cc |
@@ -30,15 +30,6 @@ const int DriveScheduler::kMaxJobCount[] = { |
1, // FILE_QUEUE |
}; |
-DriveScheduler::JobInfo::JobInfo(JobType in_job_type) |
- : job_type(in_job_type), |
- job_id(-1), |
- completed_bytes(0), |
- total_bytes(0), |
- state(STATE_NONE) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
-} |
- |
DriveScheduler::QueueEntry::QueueEntry() |
: job_id(-1), |
context(DriveClientContext(USER_INITIATED)) { |
@@ -58,8 +49,7 @@ bool DriveScheduler::QueueEntry::Compare( |
DriveScheduler::DriveScheduler( |
Profile* profile, |
google_apis::DriveServiceInterface* drive_service) |
- : next_job_id_(0), |
- throttle_count_(0), |
+ : throttle_count_(0), |
disable_throttling_(false), |
drive_service_(drive_service), |
uploader_(new google_apis::DriveUploader(drive_service)), |
@@ -102,6 +92,23 @@ void DriveScheduler::Initialize() { |
initialized_ = true; |
} |
+std::vector<JobInfo> DriveScheduler::GetJobInfoList() { |
+ std::vector<JobInfo> job_info_list; |
+ for (JobIDMap::iterator iter(&job_map_); !iter.IsAtEnd(); iter.Advance()) |
+ job_info_list.push_back(*iter.GetCurrentValue()); |
+ return job_info_list; |
+} |
+ |
+void DriveScheduler::AddObserver(JobListObserver* observer) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ observer_list_.AddObserver(observer); |
+} |
+ |
+void DriveScheduler::RemoveObserver(JobListObserver* observer) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ observer_list_.RemoveObserver(observer); |
+} |
+ |
void DriveScheduler::GetAccountMetadata( |
const google_apis::GetAccountMetadataCallback& callback) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
@@ -897,4 +904,19 @@ DriveScheduler::QueueType DriveScheduler::GetJobQueueType(JobType type) { |
return FILE_QUEUE; |
} |
+void DriveScheduler::NotifyJobAdded(const JobInfo& job_info) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ FOR_EACH_OBSERVER(JobListObserver, observer_list_, OnJobAdded(job_info)); |
+} |
+ |
+void DriveScheduler::NotifyJobDone(const JobInfo& job_info) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ FOR_EACH_OBSERVER(JobListObserver, observer_list_, OnJobDone(job_info)); |
+} |
+ |
+void DriveScheduler::NotifyJobUpdated(const JobInfo& job_info) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ FOR_EACH_OBSERVER(JobListObserver, observer_list_, OnJobUpdated(job_info)); |
+} |
+ |
} // namespace drive |