Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1289)

Unified Diff: services/resource_coordinator/memory/coordinator/coordinator_impl.h

Issue 2883693002: [Memory-UMA] Implement basic working prototype. (Closed)
Patch Set: Tests working. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..14c8c2666105a910373c0815ff705f8b58d2fdb0 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);
// 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,13 @@ 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;
+ typedef std::pair<mojom::ProcessLocalDumpManagerPtr,
dcheng 2017/05/13 20:22:37 Nit: prefer using to typedef
erikchen 2017/05/14 04:49:16 Done.
+ service_manager::Identity>
+ ProcessLocalDumpManagerEntry;
// mojom::Coordinator
void RegisterProcessLocalDumpManager(
@@ -76,11 +91,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 +108,8 @@ class CoordinatorImpl : public Coordinator, public mojom::Coordinator {
base::ThreadChecker thread_checker_;
+ std::unique_ptr<ProcessMap> process_map_;
+
DISALLOW_COPY_AND_ASSIGN(CoordinatorImpl);
};

Powered by Google App Engine
This is Rietveld 408576698