Index: services/resource_coordinator/coordination_unit/coordination_unit_manager.h |
diff --git a/services/resource_coordinator/coordination_unit/coordination_unit_manager.h b/services/resource_coordinator/coordination_unit/coordination_unit_manager.h |
index 4b10fcd096f88ea691f16d897f47ca63694a5fce..d9e368df5c6b111d559ec4c5a14653d48b645397 100644 |
--- a/services/resource_coordinator/coordination_unit/coordination_unit_manager.h |
+++ b/services/resource_coordinator/coordination_unit/coordination_unit_manager.h |
@@ -5,6 +5,9 @@ |
#ifndef SERVICES_RESOURCE_COORDINATOR_COORDINATION_UNIT_COORDINATION_UNIT_MANAGER_H_ |
#define SERVICES_RESOURCE_COORDINATOR_COORDINATION_UNIT_COORDINATION_UNIT_MANAGER_H_ |
+#include <memory> |
+#include <vector> |
+ |
#include "base/macros.h" |
#include "services/service_manager/public/cpp/binder_registry.h" |
@@ -14,6 +17,9 @@ class ServiceContextRefFactory; |
namespace resource_coordinator { |
+class CoordinationUnitImpl; |
+class CoordinationUnitGraphObserver; |
+ |
// The CoordinationUnitManager is a singleton that encapsulates all |
// aspects of Coordination Units within the ResourceCoordinatorService. |
// All functionality for dealing with CoordinationUnits should be contained |
@@ -25,8 +31,17 @@ class CoordinationUnitManager { |
void OnStart(service_manager::BinderRegistry* registry, |
service_manager::ServiceContextRefFactory* service_ref_factory); |
+ void RegisterObserver( |
+ std::unique_ptr<CoordinationUnitGraphObserver> observers); |
+ |
+ void NotifyObserversCoordinationUnitCreated( |
+ CoordinationUnitImpl* coordination_unit); |
+ void NotifyObserversCoordinationUnitWillBeDestroyed( |
+ CoordinationUnitImpl* coordination_unit); |
private: |
+ std::vector<std::unique_ptr<CoordinationUnitGraphObserver>> observers_; |
+ |
static void Create( |
service_manager::ServiceContextRefFactory* service_ref_factory); |