diff options
Diffstat (limited to 'base/trace_event/heap_profiler_event_filter.h')
-rw-r--r-- | base/trace_event/heap_profiler_event_filter.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/base/trace_event/heap_profiler_event_filter.h b/base/trace_event/heap_profiler_event_filter.h new file mode 100644 index 0000000000..47368a1b07 --- /dev/null +++ b/base/trace_event/heap_profiler_event_filter.h @@ -0,0 +1,40 @@ +// Copyright 2016 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_HEAP_PROFILER_EVENT_FILTER_H_ +#define BASE_TRACE_EVENT_HEAP_PROFILER_EVENT_FILTER_H_ + +#include "base/base_export.h" +#include "base/macros.h" +#include "base/trace_event/trace_event_filter.h" + +namespace base { +namespace trace_event { + +class TraceEvent; + +// This filter unconditionally accepts all events and pushes/pops them from the +// thread-local AllocationContextTracker instance as they are seen. +// This is used to cheaply construct the heap profiler pseudo stack without +// having to actually record all events. +class BASE_EXPORT HeapProfilerEventFilter : public TraceEventFilter { + public: + static const char kName[]; + + HeapProfilerEventFilter(); + ~HeapProfilerEventFilter() override; + + // TraceEventFilter implementation. + bool FilterTraceEvent(const TraceEvent& trace_event) const override; + void EndEvent(const char* category_name, + const char* event_name) const override; + + private: + DISALLOW_COPY_AND_ASSIGN(HeapProfilerEventFilter); +}; + +} // namespace trace_event +} // namespace base + +#endif // BASE_TRACE_EVENT_HEAP_PROFILER_EVENT_FILTER_H_ |