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

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: Split DriveJobListInterface. 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..e41b27806181c702aad7210e96608eaddf57ee95 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,21 @@ 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(DriveJobListObserver* observer) {
+ observer_list_.AddObserver(observer);
+}
+
+void DriveScheduler::RemoveObserver(DriveJobListObserver* observer) {
+ observer_list_.RemoveObserver(observer);
+}
+
void DriveScheduler::GetAccountMetadata(
const google_apis::GetAccountMetadataCallback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -903,4 +902,19 @@ DriveScheduler::QueueType DriveScheduler::GetJobQueueType(JobType type) {
return FILE_QUEUE;
}
+void DriveScheduler::NotifyJobAdded(const JobInfo& job_info) {
+ FOR_EACH_OBSERVER(DriveJobListObserver, observer_list_,
+ OnJobAdded(job_info));
+}
+
+void DriveScheduler::NotifyJobDone(const JobInfo& job_info) {
+ FOR_EACH_OBSERVER(DriveJobListObserver, observer_list_,
+ OnJobDone(job_info));
+}
+
+void DriveScheduler::NotifyJobUpdated(const JobInfo& job_info) {
+ FOR_EACH_OBSERVER(DriveJobListObserver, observer_list_,
+ OnJobUpdated(job_info));
satorux1 2013/04/17 00:11:29 These are not used in this patch. Intentional?
kinaba 2013/04/17 00:51:42 Intentional (especially for NotifyJobUpdated, not
+}
+
} // namespace drive

Powered by Google App Engine
This is Rietveld 408576698