blob: 491cee42c3847ab68a66e48d1a4934bc1eb01ff1 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/task_manager/providers/task_provider.h"
namespace task_manager {
TaskProvider::TaskProvider()
: observer_(nullptr) {
}
TaskProvider::~TaskProvider() {
}
void TaskProvider::SetObserver(TaskProviderObserver* observer) {
DCHECK(observer);
DCHECK(!observer_);
observer_ = observer;
StartUpdating();
}
void TaskProvider::ClearObserver() {
DCHECK(observer_);
observer_ = nullptr;
StopUpdating();
}
void TaskProvider::NotifyObserverTaskAdded(Task* task) const {
DCHECK(observer_);
observer_->TaskAdded(task);
}
void TaskProvider::NotifyObserverTaskRemoved(Task* task) const {
DCHECK(observer_);
observer_->TaskRemoved(task);
}
void TaskProvider::NotifyObserverTaskUnresponsive(Task* task) const {
DCHECK(observer_);
observer_->TaskUnresponsive(task);
}
void TaskProvider::UpdateTaskProcessInfoAndNotifyObserver(
Task* existing_task,
base::ProcessHandle new_process_handle,
base::ProcessId new_process_id) const {
DCHECK(observer_);
existing_task->UpdateProcessInfo(new_process_handle, new_process_id,
observer_);
}
} // namespace task_manager