| Index: services/resource_coordinator/coordination_unit/coordination_unit_impl.h
|
| diff --git a/services/resource_coordinator/coordination_unit/coordination_unit_impl.h b/services/resource_coordinator/coordination_unit/coordination_unit_impl.h
|
| index 94ebb044e624c8a0b0f6217f2b7e71e05ed5a62d..af6e92fffb7c6d465f8299028b0f78b2c9665808 100644
|
| --- a/services/resource_coordinator/coordination_unit/coordination_unit_impl.h
|
| +++ b/services/resource_coordinator/coordination_unit/coordination_unit_impl.h
|
| @@ -6,23 +6,30 @@
|
| #define SERVICES_RESOURCE_COORDINATOR_COORDINATION_UNIT_COORDINATION_UNIT_IMPL_H_
|
|
|
| #include <list>
|
| +#include <map>
|
| #include <memory>
|
| #include <set>
|
| #include <unordered_map>
|
| #include <utility>
|
| +#include <vector>
|
|
|
| +#include "base/callback.h"
|
| +#include "base/observer_list.h"
|
| #include "base/optional.h"
|
| #include "base/values.h"
|
| #include "mojo/public/cpp/bindings/binding_set.h"
|
| #include "mojo/public/cpp/bindings/interface_request.h"
|
| #include "mojo/public/cpp/bindings/strong_binding.h"
|
| #include "services/resource_coordinator/public/cpp/coordination_unit_id.h"
|
| +#include "services/resource_coordinator/public/cpp/coordination_unit_types.h"
|
| #include "services/resource_coordinator/public/interfaces/coordination_unit.mojom.h"
|
| #include "services/resource_coordinator/public/interfaces/coordination_unit_provider.mojom.h"
|
| #include "services/service_manager/public/cpp/service_context_ref.h"
|
|
|
| namespace resource_coordinator {
|
|
|
| +class CoordinationUnitGraphObserver;
|
| +
|
| class CoordinationUnitImpl : public mojom::CoordinationUnit {
|
| public:
|
| CoordinationUnitImpl(
|
| @@ -55,10 +62,14 @@ class CoordinationUnitImpl : public mojom::CoordinationUnit {
|
| // Clear property from internal key-value store
|
| void ClearProperty(mojom::PropertyType property);
|
| // Retrieve property from internal key-value store
|
| - base::Value GetProperty(mojom::PropertyType property);
|
| + base::Value GetProperty(mojom::PropertyType property) const;
|
| // Set property from internal key-value store
|
| void SetProperty(mojom::PropertyType property, base::Value value);
|
|
|
| + void WillBeDestroyed();
|
| + void AddObserver(CoordinationUnitGraphObserver* observer);
|
| + void RemoveObserver(CoordinationUnitGraphObserver* observer);
|
| +
|
| protected:
|
| const CoordinationUnitID id_;
|
| std::set<CoordinationUnitImpl*> children_;
|
| @@ -92,6 +103,8 @@ class CoordinationUnitImpl : public mojom::CoordinationUnit {
|
| mojom::CoordinationPolicyCallbackPtr policy_callback_;
|
| mojom::CoordinationPolicyPtr current_policy_;
|
|
|
| + base::ObserverList<CoordinationUnitGraphObserver> observers_;
|
| +
|
| base::Optional<bool> state_flags_[kNumStateFlags];
|
|
|
| DISALLOW_COPY_AND_ASSIGN(CoordinationUnitImpl);
|
|
|