SupervisedUser SafeSites: Switch to the new SafeSearch API
[chromium-blink-merge.git] / base / trace_event / memory_dump_request_args.h
blob3f74e81ffa67eea30b64f07b5d939c3353fbb2d8
1 // Copyright 2015 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.
5 #ifndef BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_
6 #define BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_
8 // This file defines the types and structs used to issue memory dump requests.
9 // These are also used in the IPCs for coordinating inter-process memory dumps.
11 #include "base/base_export.h"
12 #include "base/callback.h"
13 #include "base/trace_event/memory_dump_provider.h"
15 namespace base {
16 namespace trace_event {
18 // Captures the reason why a memory dump is being requested. This is to allow
19 // selective enabling of dumps, filtering and post-processing.
20 enum class MemoryDumpType {
21 TASK_BEGIN, // Dumping memory at the beginning of a message-loop task.
22 TASK_END, // Dumping memory at the ending of a message-loop task.
23 PERIODIC_INTERVAL, // Dumping memory at periodic intervals.
24 EXPLICITLY_TRIGGERED, // Non maskable dump request.
25 LAST = EXPLICITLY_TRIGGERED // For IPC macros.
28 // Returns the name in string for the dump type given.
29 BASE_EXPORT const char* MemoryDumpTypeToString(const MemoryDumpType& dump_type);
31 using MemoryDumpCallback = Callback<void(uint64 dump_guid, bool success)>;
33 struct BASE_EXPORT MemoryDumpRequestArgs {
34 // Globally unique identifier. In multi-process dumps, all processes issue a
35 // local dump with the same guid. This allows the trace importers to
36 // reconstruct the global dump.
37 uint64 dump_guid;
39 MemoryDumpType dump_type;
41 MemoryDumpArgs dump_args;
44 } // namespace trace_event
45 } // namespace base
47 #endif // BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_