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 SKIA_EXT_SK_TRACE_MEMORY_DUMP_CHROME_H_
6 #define SKIA_EXT_SK_TRACE_MEMORY_DUMP_CHROME_H_
10 #include "base/macros.h"
11 #include "third_party/skia/include/core/SkTraceMemoryDump.h"
14 namespace trace_event
{
15 class MemoryAllocatorDump
;
16 class ProcessMemoryDump
;
22 class SkTraceMemoryDump_Chrome
: public SkTraceMemoryDump
{
24 // This should never outlive the OnMemoryDump call since the
25 // ProcessMemoryDump is valid only in that timeframe. Optional
26 // |dump_name_prefix| argument specifies the prefix appended to the dump
27 // name skia provides. By default it is taken as empty string.
28 SkTraceMemoryDump_Chrome(
29 base::trace_event::ProcessMemoryDump
* process_memory_dump
);
31 SkTraceMemoryDump_Chrome(
32 const char* dump_name_prefix
,
33 base::trace_event::ProcessMemoryDump
* process_memory_dump
);
35 ~SkTraceMemoryDump_Chrome() override
;
37 // SkTraceMemoryDump implementation:
38 void dumpNumericValue(const char* dumpName
,
39 const char* valueName
,
41 uint64_t value
) override
;
42 void setMemoryBacking(const char* dumpName
,
43 const char* backingType
,
44 const char* backingObjectId
) override
;
45 void setDiscardableMemoryBacking(
47 const SkDiscardableMemory
& discardableMemoryObject
) override
;
50 base::trace_event::ProcessMemoryDump
* process_memory_dump() {
51 return process_memory_dump_
;
55 std::string dump_name_prefix_
;
57 base::trace_event::ProcessMemoryDump
* process_memory_dump_
;
59 // Helper to create allocator dumps.
60 base::trace_event::MemoryAllocatorDump
* GetOrCreateAllocatorDump(
61 const char* dumpName
);
63 DISALLOW_COPY_AND_ASSIGN(SkTraceMemoryDump_Chrome
);
68 #endif // SKIA_EXT_SK_TRACE_MEMORY_DUMP_CHROME_H_