Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(576)

Unified Diff: chrome/browser/chromeos/drive/drive_scheduler.cc

Issue 14148006: Add an observer interface for DriveScheduler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Retry rebase Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698