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