Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1916)

Unified Diff: base/trace_event/memory_dump_provider.h

Issue 1124763003: Update from https://crrev.com/327068 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: update nacl, buildtools, fix display_change_notifier_unittest Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/trace_event/memory_dump_provider.h
diff --git a/base/trace_event/memory_dump_provider.h b/base/trace_event/memory_dump_provider.h
index 5cc3a6ee66c1d276a2a43dc7c722968417d7d2ef..9ec7ad92496c62c4c437968cc26659e35e935577 100644
--- a/base/trace_event/memory_dump_provider.h
+++ b/base/trace_event/memory_dump_provider.h
@@ -6,9 +6,13 @@
#define BASE_TRACE_EVENT_MEMORY_DUMP_PROVIDER_H_
#include "base/base_export.h"
-#include "base/trace_event/memory_allocator_attributes.h"
+#include "base/memory/ref_counted.h"
+#include "base/trace_event/memory_allocator_attributes_type_info.h"
namespace base {
+
+class SingleThreadTaskRunner;
+
namespace trace_event {
class ProcessMemoryDump;
@@ -16,27 +20,46 @@ class ProcessMemoryDump;
// The contract interface that memory dump providers must implement.
class BASE_EXPORT MemoryDumpProvider {
public:
- // Called by the MemoryDumpManager when generating dump points.
+ // Called by the MemoryDumpManager when generating memory dumps.
// Returns: true if the |pmd| was successfully populated, false otherwise.
virtual bool DumpInto(ProcessMemoryDump* pmd) = 0;
virtual const char* GetFriendlyName() const = 0;
- const MemoryAllocatorDeclaredAttributes& allocator_attributes() const {
- return allocator_attributes_;
+ const MemoryAllocatorAttributesTypeInfo& allocator_attributes_type_info()
+ const {
+ return allocator_attributes_type_info_;
+ }
+
+ // The dump provider can specify an optional thread affinity (in its
+ // base constructor call). If |task_runner| is non empty, all the calls to
+ // DumpInto are guaranteed to be posted to that TaskRunner.
+ const scoped_refptr<SingleThreadTaskRunner>& task_runner() const {
+ return task_runner_;
}
protected:
+ // Default ctor: the MDP is not bound to any thread (must be a singleton).
MemoryDumpProvider();
+
+ // Use this ctor to ensure that DumpInto() is called always on the same thread
+ // specified by |task_runner|.
+ explicit MemoryDumpProvider(
+ const scoped_refptr<SingleThreadTaskRunner>& task_runner);
+
virtual ~MemoryDumpProvider();
- void DeclareAllocatorAttribute(const MemoryAllocatorDeclaredAttribute& attr);
+ void DeclareAllocatorAttribute(const std::string& allocator_name,
+ const std::string& attribute_name,
+ const std::string& attribute_type);
private:
- // The map (attribute name -> type) that specifies the semantic of the
- // extra attributes that the MemoryAllocatorDump(s) produced by this
- // MemoryDumpProvider will have.
- MemoryAllocatorDeclaredAttributes allocator_attributes_;
+ // A map of attributes types (declared through DeclareAllocatorAttribute())
+ // emitted by this allocator dumper.
+ MemoryAllocatorAttributesTypeInfo allocator_attributes_type_info_;
+
+ // (Optional) TaskRunner on which the DumpInfo call should be posted.
+ scoped_refptr<SingleThreadTaskRunner> task_runner_;
DISALLOW_COPY_AND_ASSIGN(MemoryDumpProvider);
};

Powered by Google App Engine
This is Rietveld 408576698