| Index: services/resource_coordinator/memory/coordinator/coordinator_impl.h
|
| diff --git a/services/resource_coordinator/memory/coordinator/coordinator_impl.h b/services/resource_coordinator/memory/coordinator/coordinator_impl.h
|
| index 096847b0f9aca14eb9cda21ab6d67f99d1cca09f..a7cfd96039929494ac2b09c291f5dc01f0e4d9e9 100644
|
| --- a/services/resource_coordinator/memory/coordinator/coordinator_impl.h
|
| +++ b/services/resource_coordinator/memory/coordinator/coordinator_impl.h
|
| @@ -14,9 +14,14 @@
|
| #include "base/trace_event/memory_dump_request_args.h"
|
| #include "mojo/public/cpp/bindings/binding.h"
|
| #include "mojo/public/cpp/bindings/binding_set.h"
|
| +#include "services/resource_coordinator/memory/coordinator/process_map.h"
|
| #include "services/resource_coordinator/public/cpp/memory/coordinator.h"
|
| #include "services/resource_coordinator/public/interfaces/memory/memory_instrumentation.mojom.h"
|
|
|
| +namespace service_manager {
|
| +class Connector;
|
| +}
|
| +
|
| namespace memory_instrumentation {
|
|
|
| class CoordinatorImpl : public Coordinator, public mojom::Coordinator {
|
| @@ -24,7 +29,8 @@ class CoordinatorImpl : public Coordinator, public mojom::Coordinator {
|
| // The getter of the unique instance.
|
| static CoordinatorImpl* GetInstance();
|
|
|
| - explicit CoordinatorImpl(bool initialize_memory_dump_manager);
|
| + CoordinatorImpl(bool initialize_memory_dump_manager,
|
| + service_manager::Connector* connector);
|
|
|
| // Coordinator
|
| void BindCoordinatorRequest(
|
| @@ -35,6 +41,11 @@ class CoordinatorImpl : public Coordinator, public mojom::Coordinator {
|
| return initialize_memory_dump_manager_;
|
| }
|
|
|
| + protected:
|
| + // virtual for testing.
|
| + virtual service_manager::Identity GetDispatchContext() const;
|
| + ~CoordinatorImpl() override;
|
| +
|
| private:
|
| friend std::default_delete<CoordinatorImpl>; // For testing
|
| friend class CoordinatorImplTest; // For testing
|
| @@ -47,10 +58,12 @@ class CoordinatorImpl : public Coordinator, public mojom::Coordinator {
|
| const RequestGlobalMemoryDumpCallback callback;
|
|
|
| // Collects the data received from OnProcessMemoryDumpResponse().
|
| - std::vector<mojom::ProcessMemoryDumpPtr> process_memory_dumps;
|
| + std::vector<std::pair<base::ProcessId, mojom::ProcessMemoryDumpPtr>>
|
| + process_memory_dumps;
|
| };
|
|
|
| - ~CoordinatorImpl() override;
|
| + using ProcessLocalDumpManagerEntry =
|
| + std::pair<mojom::ProcessLocalDumpManagerPtr, service_manager::Identity>;
|
|
|
| // mojom::Coordinator
|
| void RegisterProcessLocalDumpManager(
|
| @@ -77,10 +90,10 @@ class CoordinatorImpl : public Coordinator, public mojom::Coordinator {
|
| void PerformNextQueuedGlobalMemoryDump();
|
| void FinalizeGlobalMemoryDumpIfAllManagersReplied();
|
|
|
| - mojo::BindingSet<mojom::Coordinator> bindings_;
|
| + mojo::BindingSet<mojom::Coordinator, service_manager::Identity> bindings_;
|
|
|
| // Registered ProcessLocalDumpManagers.
|
| - std::map<mojom::ProcessLocalDumpManager*, mojom::ProcessLocalDumpManagerPtr>
|
| + std::map<mojom::ProcessLocalDumpManager*, ProcessLocalDumpManagerEntry>
|
| process_managers_;
|
|
|
| // Pending process managers for RequestGlobalMemoryDump.
|
| @@ -92,6 +105,8 @@ class CoordinatorImpl : public Coordinator, public mojom::Coordinator {
|
|
|
| base::ThreadChecker thread_checker_;
|
|
|
| + std::unique_ptr<ProcessMap> process_map_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(CoordinatorImpl);
|
| };
|
|
|
|
|