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

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

Issue 2895083004: memory-infra: rename service folder to memory_instrumentation (Closed)
Patch Set: comments 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
deleted file mode 100644
index 7d78d01c7f2fda5ca163d204447ed332fa2f5f05..0000000000000000000000000000000000000000
--- a/services/resource_coordinator/memory/coordinator/coordinator_impl.h
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef SERVICES_RESOURCE_COORDINATOR_MEMORY_COORDINATOR_COORDINATOR_IMPL_H_
-#define SERVICES_RESOURCE_COORDINATOR_MEMORY_COORDINATOR_COORDINATOR_IMPL_H_
-
-#include <list>
-#include <map>
-#include <set>
-
-#include "base/memory/ref_counted.h"
-#include "base/threading/thread_checker.h"
-#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 {
-
-// Memory instrumentation service. It serves two purposes:
-// - Handles a registry of the processes that have a memory instrumentation
-// client library instance (../../public/cpp/memory).
-// - Provides global (i.e. for all processes) memory snapshots on demand.
-// Global snapshots are obtained by requesting in-process snapshots from each
-// registered client and aggregating them.
-class CoordinatorImpl : public Coordinator, public mojom::Coordinator {
- public:
- // The getter of the unique instance.
- static CoordinatorImpl* GetInstance();
-
- CoordinatorImpl(bool initialize_memory_dump_manager,
- service_manager::Connector* connector);
-
- // Binds a client library to this coordinator instance.
- void BindCoordinatorRequest(
- const service_manager::BindSourceInfo& source_info,
- mojom::CoordinatorRequest) override;
-
- bool initialize_memory_dump_manager() const {
- return initialize_memory_dump_manager_;
- }
-
- // mojom::Coordinator implementation.
- void RegisterProcessLocalDumpManager(
- mojom::ProcessLocalDumpManagerPtr process_manager) override;
- void UnregisterProcessLocalDumpManager(
- mojom::ProcessLocalDumpManager* process_manager);
- void RequestGlobalMemoryDump(
- const base::trace_event::MemoryDumpRequestArgs& args,
- const RequestGlobalMemoryDumpCallback& callback) override;
-
- protected:
- // virtual for testing.
- virtual service_manager::Identity GetClientIdentityForCurrentRequest() const;
- ~CoordinatorImpl() override;
-
- private:
- friend std::default_delete<CoordinatorImpl>; // For testing
- friend class CoordinatorImplTest; // For testing
-
- // Holds data for pending requests enqueued via RequestGlobalMemoryDump().
- struct QueuedMemoryDumpRequest {
- QueuedMemoryDumpRequest(
- const base::trace_event::MemoryDumpRequestArgs& args,
- const RequestGlobalMemoryDumpCallback callback);
- ~QueuedMemoryDumpRequest();
- const base::trace_event::MemoryDumpRequestArgs args;
- const RequestGlobalMemoryDumpCallback callback;
-
- // Collects the data received from OnProcessMemoryDumpResponse().
- std::vector<std::pair<base::ProcessId, mojom::ProcessMemoryDumpPtr>>
- process_memory_dumps;
- };
-
- // Holds the identy and remote reference of registered clients.
- struct ClientInfo {
- ClientInfo(const service_manager::Identity&,
- mojom::ProcessLocalDumpManagerPtr);
- ~ClientInfo();
-
- const service_manager::Identity identity;
- const mojom::ProcessLocalDumpManagerPtr client;
- };
-
- // Callback of RequestProcessMemoryDump.
- void OnProcessMemoryDumpResponse(
- mojom::ProcessLocalDumpManager* process_manager,
- uint64_t dump_guid,
- bool success,
- mojom::ProcessMemoryDumpPtr process_memory_dump);
-
- void PerformNextQueuedGlobalMemoryDump();
- void FinalizeGlobalMemoryDumpIfAllManagersReplied();
-
- mojo::BindingSet<mojom::Coordinator, service_manager::Identity> bindings_;
-
- // Map of registered clients.
- std::map<mojom::ProcessLocalDumpManager*, std::unique_ptr<ClientInfo>>
- clients_;
-
- // Oustanding dump requests, enqueued via RequestGlobalMemoryDump().
- std::list<QueuedMemoryDumpRequest> queued_memory_dump_requests_;
-
- // When a dump, requested via RequestGlobalMemoryDump(), is in progress this
- // set contains the subset of registerd |clients_| that have not yet replied
- // to the local dump request (via RequestProcessMemoryDump()) .
- std::set<mojom::ProcessLocalDumpManager*> pending_clients_for_current_dump_;
-
- int failed_memory_dump_count_;
-
- const bool initialize_memory_dump_manager_;
-
- base::ThreadChecker thread_checker_;
-
- // Maintains a map of service_manager::Identity -> pid for registered clients.
- std::unique_ptr<ProcessMap> process_map_;
-
- DISALLOW_COPY_AND_ASSIGN(CoordinatorImpl);
-};
-
-} // namespace memory_instrumentation
-#endif // SERVICES_RESOURCE_COORDINATOR_MEMORY_COORDINATOR_COORDINATOR_IMPL_H_
« no previous file with comments | « services/resource_coordinator/BUILD.gn ('k') | services/resource_coordinator/memory/coordinator/coordinator_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698