1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "services/resource_coordinator/memory_instrumentation/queued_request.h"
6
7 namespace memory_instrumentation {
8
Args(MemoryDumpType dump_type,MemoryDumpLevelOfDetail level_of_detail,MemoryDumpDeterminism determinism,const std::vector<std::string> & allocator_dump_names,bool add_to_trace,base::ProcessId pid,bool memory_footprint_only)9 QueuedRequest::Args::Args(MemoryDumpType dump_type,
10 MemoryDumpLevelOfDetail level_of_detail,
11 MemoryDumpDeterminism determinism,
12 const std::vector<std::string>& allocator_dump_names,
13 bool add_to_trace,
14 base::ProcessId pid,
15 bool memory_footprint_only)
16 : dump_type(dump_type),
17 level_of_detail(level_of_detail),
18 determinism(determinism),
19 allocator_dump_names(allocator_dump_names),
20 add_to_trace(add_to_trace),
21 pid(pid),
22 memory_footprint_only(memory_footprint_only) {}
23 QueuedRequest::Args::Args(const Args& args) = default;
24 QueuedRequest::Args::~Args() = default;
25
PendingResponse(base::ProcessId process_id,Type type)26 QueuedRequest::PendingResponse::PendingResponse(base::ProcessId process_id,
27 Type type)
28 : process_id(process_id), type(type) {}
29
operator <(const PendingResponse & other) const30 bool QueuedRequest::PendingResponse::operator<(
31 const PendingResponse& other) const {
32 return std::tie(process_id, type) < std::tie(other.process_id, other.type);
33 }
34
Response()35 QueuedRequest::Response::Response() {}
36 QueuedRequest::Response::Response(Response&& other) = default;
37 QueuedRequest::Response::~Response() = default;
38
QueuedRequest(const Args & args,uint64_t dump_guid,RequestGlobalMemoryDumpInternalCallback callback)39 QueuedRequest::QueuedRequest(const Args& args,
40 uint64_t dump_guid,
41 RequestGlobalMemoryDumpInternalCallback callback)
42 : args(args), dump_guid(dump_guid), callback(std::move(callback)) {}
43 QueuedRequest::~QueuedRequest() = default;
44
GetRequestArgs()45 base::trace_event::MemoryDumpRequestArgs QueuedRequest::GetRequestArgs() {
46 base::trace_event::MemoryDumpRequestArgs request_args;
47 request_args.dump_guid = dump_guid;
48 request_args.dump_type = args.dump_type;
49 request_args.level_of_detail = args.level_of_detail;
50 request_args.determinism = args.determinism;
51 return request_args;
52 }
53
54 QueuedVmRegionRequest::Response::Response() = default;
55 QueuedVmRegionRequest::Response::~Response() = default;
56
QueuedVmRegionRequest(uint64_t dump_guid,mojom::HeapProfilerHelper::GetVmRegionsForHeapProfilerCallback callback)57 QueuedVmRegionRequest::QueuedVmRegionRequest(
58 uint64_t dump_guid,
59 mojom::HeapProfilerHelper::GetVmRegionsForHeapProfilerCallback callback)
60 : dump_guid(dump_guid), callback(std::move(callback)) {}
61 QueuedVmRegionRequest::~QueuedVmRegionRequest() = default;
62
63 } // namespace memory_instrumentation
64