Chromium Code Reviews| Index: base/trace_event/trace_log.h |
| diff --git a/base/trace_event/trace_log.h b/base/trace_event/trace_log.h |
| index d0759cd9835c1ce9e0f9e2eeea727dab94fd035f..9a69442cff1a6a903fcbd586739a0eaf6db17002 100644 |
| --- a/base/trace_event/trace_log.h |
| +++ b/base/trace_event/trace_log.h |
| @@ -44,9 +44,14 @@ struct BASE_EXPORT TraceLogStatus { |
| class BASE_EXPORT TraceLog : public MemoryDumpProvider { |
| public: |
| - enum Mode { |
| - DISABLED = 0, |
| - RECORDING_MODE |
| + // Argument passed to TrcaeLog::SetEnabled. |
| + enum Mode : uint8_t { |
| + // RECORDING_MODE: Enables normal tracing (recording trace events in the |
|
oystein (OOO til 10th of July)
2016/10/13 00:34:30
nit: No need for the 'RECORDING_MODE' and 'FILTERI
ssid
2016/10/13 17:30:54
Done.
|
| + // trace buffer). |
| + RECORDING_MODE = 1 << 0, |
| + // FILTERING_MODE: Trace events are enabled just for filtering but not for |
| + // recording. Only event filters config of |trace_config| argument is used. |
| + FILTERING_MODE = 1 << 1 |
| }; |
| // The pointer returned from GetCategoryGroupEnabledInternal() points to a |
| @@ -77,16 +82,30 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { |
| // if the current thread supports that (has a message loop). |
| void InitializeThreadLocalEventBufferIfSupported(); |
| - // Enables normal tracing (recording trace events in the trace buffer). |
| - // See TraceConfig comments for details on how to control what categories |
| - // will be traced. If tracing has already been enabled, |category_filter| will |
| - // be merged into the current category filter. |
| - void SetEnabled(const TraceConfig& trace_config, Mode mode); |
| - |
| - // Disables normal tracing for all categories. |
| + // See TraceConfig comments for details on how to control what categories will |
|
oystein (OOO til 10th of July)
2016/10/13 00:34:30
nit: s/what/which/
ssid
2016/10/13 17:30:54
Done.
|
| + // be traced. SetDisabled must be called distinctly for each mode that is |
| + // enabled. If tracing has already been enabled for recording, category filter |
| + // (enabled and disabled categories) will be merged into the current category |
| + // filter. Enabling RECORDING_MODE does not enable filters. Trace event |
| + // filters will be used only if FILTERING_MODE is set on |modes|. Conversely |
| + // to RECORDING_MODE, FILTERING_MODE doesn't support upgrading, i.e. filters |
| + // can only be enabled if not previously enabled. |
| + void SetEnabled(const TraceConfig& trace_config, uint8_t modes); |
| + |
| + // TODO(ssid): Remove the default SetEnabled and IsEnabled. They should take |
| + // Mode as argument. |
| + |
| + // Disables tracing for all categories for the specified |modes| only. Only |
| + // RECORDING_MODE is taken as default |modes|. |
| void SetDisabled(); |
| + void SetDisabled(uint8_t modes); |
| + |
| + // Returns true if TraceLog is enabled on recording mode. |
| + // Note: Returns false even if FILTERING_MODE is enabled. |
| + bool IsEnabled() { return enabled_modes_ & RECORDING_MODE; } |
| - bool IsEnabled() { return mode_ != DISABLED; } |
| + // Returns a bitmap of enabled modes from TraceLog::Mode. |
| + uint8_t enabled_modes() { return enabled_modes_; } |
| // The number of times we have begun recording traces. If tracing is off, |
| // returns -1. If tracing is on, then it returns the number of times we have |
| @@ -433,7 +452,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { |
| TraceEvent* AddEventToThreadSharedChunkWhileLocked(TraceEventHandle* handle, |
| bool check_buffer_is_full); |
| void CheckIfBufferIsFullWhileLocked(); |
| - void SetDisabledWhileLocked(); |
| + void SetDisabledWhileLocked(uint8_t modes); |
| TraceEvent* GetEventByHandleInternal(TraceEventHandle handle, |
| OptionalAutoLock* lock); |
| @@ -481,7 +500,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { |
| // This lock protects accesses to thread_names_, thread_event_start_times_ |
| // and thread_colors_. |
| Lock thread_info_lock_; |
| - Mode mode_; |
| + uint8_t enabled_modes_; // See TraceLog::Mode. |
| int num_traces_recorded_; |
| std::unique_ptr<TraceBuffer> logged_events_; |
| std::vector<std::unique_ptr<TraceEvent>> metadata_events_; |
| @@ -519,6 +538,7 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider { |
| TraceConfig trace_config_; |
| TraceConfig event_callback_trace_config_; |
| + TraceConfig::EventFilters event_filters_enabled_; |
|
oystein (OOO til 10th of July)
2016/10/13 00:34:30
'enabled_event_filters_' maybe, current phrasing m
ssid
2016/10/13 17:30:54
Done.
|
| ThreadLocalPointer<ThreadLocalEventBuffer> thread_local_event_buffer_; |
| ThreadLocalBoolean thread_blocks_message_loop_; |