Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / skia / ext / SkTraceMemoryDump_chrome.h
blob749d99d54677aa6ddbd40dddf1b82e26eaeee53d
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_
8 #include <string>
10 #include "base/macros.h"
11 #include "third_party/skia/include/core/SkTraceMemoryDump.h"
13 namespace base {
14 namespace trace_event {
15 class MemoryAllocatorDump;
16 class ProcessMemoryDump;
20 namespace skia {
22 class SkTraceMemoryDump_Chrome : public SkTraceMemoryDump {
23 public:
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,
40 const char* units,
41 uint64_t value) override;
42 void setMemoryBacking(const char* dumpName,
43 const char* backingType,
44 const char* backingObjectId) override;
45 void setDiscardableMemoryBacking(
46 const char* dumpName,
47 const SkDiscardableMemory& discardableMemoryObject) override;
49 protected:
50 base::trace_event::ProcessMemoryDump* process_memory_dump() {
51 return process_memory_dump_;
54 private:
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);
66 } // namespace skia
68 #endif // SKIA_EXT_SK_TRACE_MEMORY_DUMP_CHROME_H_