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..d5588704e075e40f40b27611bffe2c8dd5118e78 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,8 +17,11 @@ class ServiceContextRefFactory; |
namespace resource_coordinator { |
+class CoordinationUnitImpl; |
+class CoordinationUnitGraphObserver; |
+ |
// The CoordinationUnitManager is a singleton that encapsulates all |
-// aspects of Coordination Units within the ResourceCoordinatorService. |
+// aspects of Coordination Units within the resource_coordinator service. |
// All functionality for dealing with CoordinationUnits should be contained |
// within this class or classes that are owned by it |
class CoordinationUnitManager { |
@@ -25,8 +31,20 @@ class CoordinationUnitManager { |
void OnStart(service_manager::BinderRegistry* registry, |
service_manager::ServiceContextRefFactory* service_ref_factory); |
+ void RegisterObserver( |
+ std::unique_ptr<CoordinationUnitGraphObserver> observer); |
+ void OnCoordinationUnitCreated(CoordinationUnitImpl* coordination_unit); |
+ void OnCoordinationUnitWillBeDestroyed( |
+ CoordinationUnitImpl* coordination_unit); |
+ |
+ std::vector<std::unique_ptr<CoordinationUnitGraphObserver>>& |
+ observers_for_testing() { |
+ return observers_; |
+ } |
private: |
+ std::vector<std::unique_ptr<CoordinationUnitGraphObserver>> observers_; |
+ |
static void Create( |
service_manager::ServiceContextRefFactory* service_ref_factory); |