Index: base/trace_event/memory_allocator_dump.h |
diff --git a/base/trace_event/memory_allocator_dump.h b/base/trace_event/memory_allocator_dump.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4d7293e710f5ef19f591ae4cdb8d3b712a3ac3f0 |
--- /dev/null |
+++ b/base/trace_event/memory_allocator_dump.h |
@@ -0,0 +1,66 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_H_ |
+#define BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_H_ |
+ |
+#include "base/base_export.h" |
+#include "base/basictypes.h" |
+#include "base/logging.h" |
+#include "base/trace_event/memory_allocator_attributes.h" |
+#include "base/values.h" |
+ |
+namespace base { |
+namespace trace_event { |
+ |
+class MemoryDumpManager; |
+class TracedValue; |
+ |
+// Data model for user-land memory allocator dumps. |
+class BASE_EXPORT MemoryAllocatorDump { |
+ public: |
+ MemoryAllocatorDump(const std::string& name, MemoryAllocatorDump* parent); |
+ ~MemoryAllocatorDump(); |
+ |
+ const std::string& name() const { return name_; } |
+ const MemoryAllocatorDump* parent() const { return parent_; } |
+ |
+ void set_physical_size_in_bytes(uint64 value) { |
+ physical_size_in_bytes_ = value; |
+ } |
+ uint64 physical_size_in_bytes() const { return physical_size_in_bytes_; } |
+ |
+ void set_allocated_objects_count(uint64 value) { |
+ allocated_objects_count_ = value; |
+ } |
+ uint64 allocated_objects_count() const { return allocated_objects_count_; } |
+ |
+ void set_allocated_objects_size_in_bytes(uint64 value) { |
+ allocated_objects_size_in_bytes_ = value; |
+ } |
+ uint64 allocated_objects_size_in_bytes() const { |
+ return allocated_objects_size_in_bytes_; |
+ } |
+ |
+ void SetExtraAttribute(const std::string& name, int value); |
+ int GetExtraIntegerAttribute(const std::string& name) const; |
+ |
+ // Called at trace generation time to populate the TracedValue. |
+ void AsValueInto(TracedValue* value) const; |
+ |
+ private: |
+ const std::string name_; |
+ MemoryAllocatorDump* const parent_; // Not owned. |
+ uint64 physical_size_in_bytes_; |
+ uint64 allocated_objects_count_; |
+ uint64 allocated_objects_size_in_bytes_; |
+ DictionaryValue extra_attributes_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(MemoryAllocatorDump); |
+}; |
+ |
+} // namespace trace_event |
+} // namespace base |
+ |
+#endif // BASE_TRACE_EVENT_MEMORY_ALLOCATOR_DUMP_H_ |