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 9b5b5b35257e522136f1a236b9e1ec48dbbe84f8..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)) { |
@@ -101,13 +92,23 @@ void DriveScheduler::Initialize() { |
initialized_ = true; |
} |
-std::vector<DriveScheduler::JobInfo> DriveScheduler::GetJobInfoList() { |
+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)); |
@@ -903,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 |