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

Side by Side Diff: base/trace_event/memory_dump_session_state.h

Issue 1717283003: tracing: Make ConvertableToTraceFormat move-only scoped_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef BASE_TRACE_EVENT_MEMORY_DUMP_SESSION_STATE_H_ 5 #ifndef BASE_TRACE_EVENT_MEMORY_DUMP_SESSION_STATE_H_
6 #define BASE_TRACE_EVENT_MEMORY_DUMP_SESSION_STATE_H_ 6 #define BASE_TRACE_EVENT_MEMORY_DUMP_SESSION_STATE_H_
7 7
8 #include "base/base_export.h" 8 #include "base/base_export.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/trace_event/heap_profiler_stack_frame_deduplicator.h" 10 #include "base/trace_event/heap_profiler_stack_frame_deduplicator.h"
11 #include "base/trace_event/heap_profiler_type_name_deduplicator.h" 11 #include "base/trace_event/heap_profiler_type_name_deduplicator.h"
12 12
13 namespace base { 13 namespace base {
14 namespace trace_event { 14 namespace trace_event {
15 15
16 // Container for state variables that should be shared across all the memory 16 // Container for state variables that should be shared across all the memory
17 // dumps in a tracing session. 17 // dumps in a tracing session.
18 class BASE_EXPORT MemoryDumpSessionState 18 class BASE_EXPORT MemoryDumpSessionState
19 : public RefCountedThreadSafe<MemoryDumpSessionState> { 19 : public RefCountedThreadSafe<MemoryDumpSessionState> {
20 public: 20 public:
21 MemoryDumpSessionState( 21 MemoryDumpSessionState();
22 const scoped_refptr<StackFrameDeduplicator>& stack_frame_deduplicator,
23 const scoped_refptr<TypeNameDeduplicator>& type_name_deduplicator);
24 22
25 // Returns the stack frame deduplicator that should be used by memory dump 23 // Returns the stack frame deduplicator that should be used by memory dump
26 // providers when doing a heap dump. 24 // providers when doing a heap dump.
27 StackFrameDeduplicator* stack_frame_deduplicator() { 25 StackFrameDeduplicator* stack_frame_deduplicator() const {
28 return stack_frame_deduplicator_.get(); 26 return stack_frame_deduplicator_.get();
29 } 27 }
30 28
29 void SetStackFrameDeduplicator(
30 scoped_ptr<StackFrameDeduplicator> stack_frame_deduplicator);
31
31 // Returns the type name deduplicator that should be used by memory dump 32 // Returns the type name deduplicator that should be used by memory dump
32 // providers when doing a heap dump. 33 // providers when doing a heap dump.
33 TypeNameDeduplicator* type_name_deduplicator() { 34 TypeNameDeduplicator* type_name_deduplicator() const {
34 return type_name_deduplicator_.get(); 35 return type_name_deduplicator_.get();
35 } 36 }
36 37
38 void SetTypeNameDeduplicator(
39 scoped_ptr<TypeNameDeduplicator> type_name_deduplicator);
40
37 private: 41 private:
38 friend class RefCountedThreadSafe<MemoryDumpSessionState>; 42 friend class RefCountedThreadSafe<MemoryDumpSessionState>;
39 ~MemoryDumpSessionState(); 43 ~MemoryDumpSessionState();
40 44
41 // Deduplicates backtraces in heap dumps so they can be written once when the 45 // Deduplicates backtraces in heap dumps so they can be written once when the
42 // trace is finalized. 46 // trace is finalized.
43 scoped_refptr<StackFrameDeduplicator> stack_frame_deduplicator_; 47 scoped_ptr<StackFrameDeduplicator> stack_frame_deduplicator_;
44 48
45 // Deduplicates type names in heap dumps so they can be written once when the 49 // Deduplicates type names in heap dumps so they can be written once when the
46 // trace is finalized. 50 // trace is finalized.
47 scoped_refptr<TypeNameDeduplicator> type_name_deduplicator_; 51 scoped_ptr<TypeNameDeduplicator> type_name_deduplicator_;
48 }; 52 };
49 53
50 } // namespace trace_event 54 } // namespace trace_event
51 } // namespace base 55 } // namespace base
52 56
53 #endif // BASE_TRACE_EVENT_MEMORY_DUMP_SESSION_STATE_H_ 57 #endif // BASE_TRACE_EVENT_MEMORY_DUMP_SESSION_STATE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698