chromium/chrome/browser/performance_manager/user_tuning/user_performance_tuning_notifier.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_USER_TUNING_USER_PERFORMANCE_TUNING_NOTIFIER_H_
#define CHROME_BROWSER_PERFORMANCE_MANAGER_USER_TUNING_USER_PERFORMANCE_TUNING_NOTIFIER_H_

#include <memory>

#include "components/performance_manager/public/decorators/process_metrics_decorator.h"
#include "components/performance_manager/public/graph/graph.h"
#include "components/performance_manager/public/graph/page_node.h"
#include "components/performance_manager/public/graph/system_node.h"

namespace performance_manager::user_tuning {

// This helper lives on the Performance Manager sequence to observe changes to
// the graph and notify the UserPerformanceTuningManager when certain thresholds
// are met.
class UserPerformanceTuningNotifier : public performance_manager::GraphOwned,
                                      public PageNode::ObserverDefaultImpl,
                                      public SystemNode::ObserverDefaultImpl {};

}  // namespace performance_manager::user_tuning

#endif  // CHROME_BROWSER_PERFORMANCE_MANAGER_USER_TUNING_USER_PERFORMANCE_TUNING_NOTIFIER_H_