Chromium Code Reviews| 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..465681a06cfc18f85bb9920f0b00c7d591ed33d3 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,9 @@ 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, |
| + bool initialize_process_map); |
|
Primiano Tucci (use gerrit)
2017/05/15 03:48:10
don't see a strong need for this |initialize_proce
erikchen
2017/05/15 17:29:15
Done.
|
| // Coordinator |
| void BindCoordinatorRequest( |
| @@ -35,6 +42,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 +59,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>; |
|
Primiano Tucci (use gerrit)
2017/05/15 03:48:09
this will:
1) make the code in the .cc file full
Primiano Tucci (use gerrit)
2017/05/15 16:35:05
discussed offline, I have a patch to clean this la
|
| // mojom::Coordinator |
| void RegisterProcessLocalDumpManager( |
| @@ -76,11 +90,12 @@ class CoordinatorImpl : public Coordinator, public mojom::Coordinator { |
| void PerformNextQueuedGlobalMemoryDump(); |
| void FinalizeGlobalMemoryDumpIfAllManagersReplied(); |
| + void InitProcessMap(service_manager::Connector* connector); |
| - 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 +107,8 @@ class CoordinatorImpl : public Coordinator, public mojom::Coordinator { |
| base::ThreadChecker thread_checker_; |
| + std::unique_ptr<ProcessMap> process_map_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(CoordinatorImpl); |
| }; |