| OLD | NEW |
| 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_TRACE_LOG_H_ | 5 #ifndef BASE_TRACE_EVENT_TRACE_LOG_H_ |
| 6 #define BASE_TRACE_EVENT_TRACE_LOG_H_ | 6 #define BASE_TRACE_EVENT_TRACE_LOG_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 struct DefaultSingletonTraits; | 28 struct DefaultSingletonTraits; |
| 29 class MessageLoop; | 29 class MessageLoop; |
| 30 class RefCountedString; | 30 class RefCountedString; |
| 31 | 31 |
| 32 namespace trace_event { | 32 namespace trace_event { |
| 33 | 33 |
| 34 struct TraceCategory; | 34 struct TraceCategory; |
| 35 class TraceBuffer; | 35 class TraceBuffer; |
| 36 class TraceBufferChunk; | 36 class TraceBufferChunk; |
| 37 class TraceEvent; | 37 class TraceEvent; |
| 38 class TraceEventFilter; |
| 38 class TraceEventMemoryOverhead; | 39 class TraceEventMemoryOverhead; |
| 39 | 40 |
| 40 struct BASE_EXPORT TraceLogStatus { | 41 struct BASE_EXPORT TraceLogStatus { |
| 41 TraceLogStatus(); | 42 TraceLogStatus(); |
| 42 ~TraceLogStatus(); | 43 ~TraceLogStatus(); |
| 43 uint32_t event_capacity; | 44 uint32_t event_capacity; |
| 44 uint32_t event_count; | 45 uint32_t event_count; |
| 45 }; | 46 }; |
| 46 | 47 |
| 47 class BASE_EXPORT TraceLog : public MemoryDumpProvider { | 48 class BASE_EXPORT TraceLog : public MemoryDumpProvider { |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 void EndFilteredEvent(const unsigned char* category_group_enabled, | 272 void EndFilteredEvent(const unsigned char* category_group_enabled, |
| 272 const char* name, | 273 const char* name, |
| 273 TraceEventHandle handle); | 274 TraceEventHandle handle); |
| 274 | 275 |
| 275 int process_id() const { return process_id_; } | 276 int process_id() const { return process_id_; } |
| 276 | 277 |
| 277 uint64_t MangleEventId(uint64_t id); | 278 uint64_t MangleEventId(uint64_t id); |
| 278 | 279 |
| 279 // Exposed for unittesting: | 280 // Exposed for unittesting: |
| 280 | 281 |
| 282 // Testing factory for TraceEventFilter. |
| 283 typedef std::unique_ptr<TraceEventFilter> (*FilterFactoryForTesting)( |
| 284 const std::string& /* predicate_name */); |
| 285 void SetFilterFactoryForTesting(FilterFactoryForTesting factory) { |
| 286 filter_factory_for_testing_ = factory; |
| 287 } |
| 288 |
| 281 // Allows deleting our singleton instance. | 289 // Allows deleting our singleton instance. |
| 282 static void DeleteForTesting(); | 290 static void DeleteForTesting(); |
| 283 | 291 |
| 284 class BASE_EXPORT TraceEventFilter { | |
| 285 public: | |
| 286 static const char* const kEventWhitelistPredicate; | |
| 287 static const char* const kHeapProfilerPredicate; | |
| 288 | |
| 289 TraceEventFilter() {} | |
| 290 virtual ~TraceEventFilter() {} | |
| 291 virtual bool FilterTraceEvent(const TraceEvent& trace_event) const = 0; | |
| 292 virtual void EndEvent(const char* category_group, const char* name) {} | |
| 293 | |
| 294 private: | |
| 295 DISALLOW_COPY_AND_ASSIGN(TraceEventFilter); | |
| 296 }; | |
| 297 typedef std::unique_ptr<TraceEventFilter> ( | |
| 298 *TraceEventFilterConstructorForTesting)(void); | |
| 299 static void SetTraceEventFilterConstructorForTesting( | |
| 300 TraceEventFilterConstructorForTesting predicate); | |
| 301 | |
| 302 // Allow tests to inspect TraceEvents. | 292 // Allow tests to inspect TraceEvents. |
| 303 TraceEvent* GetEventByHandle(TraceEventHandle handle); | 293 TraceEvent* GetEventByHandle(TraceEventHandle handle); |
| 304 | 294 |
| 305 void SetProcessID(int process_id); | 295 void SetProcessID(int process_id); |
| 306 | 296 |
| 307 // Process sort indices, if set, override the order of a process will appear | 297 // Process sort indices, if set, override the order of a process will appear |
| 308 // relative to other processes in the trace viewer. Processes are sorted first | 298 // relative to other processes in the trace viewer. Processes are sorted first |
| 309 // on their sort index, ascending, then by their name, and then tid. | 299 // on their sort index, ascending, then by their name, and then tid. |
| 310 void SetProcessSortIndex(int sort_index); | 300 void SetProcessSortIndex(int sort_index); |
| 311 | 301 |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 std::unique_ptr<TraceBufferChunk> thread_shared_chunk_; | 489 std::unique_ptr<TraceBufferChunk> thread_shared_chunk_; |
| 500 size_t thread_shared_chunk_index_; | 490 size_t thread_shared_chunk_index_; |
| 501 | 491 |
| 502 // Set when asynchronous Flush is in progress. | 492 // Set when asynchronous Flush is in progress. |
| 503 OutputCallback flush_output_callback_; | 493 OutputCallback flush_output_callback_; |
| 504 scoped_refptr<SingleThreadTaskRunner> flush_task_runner_; | 494 scoped_refptr<SingleThreadTaskRunner> flush_task_runner_; |
| 505 ArgumentFilterPredicate argument_filter_predicate_; | 495 ArgumentFilterPredicate argument_filter_predicate_; |
| 506 subtle::AtomicWord generation_; | 496 subtle::AtomicWord generation_; |
| 507 bool use_worker_thread_; | 497 bool use_worker_thread_; |
| 508 | 498 |
| 499 FilterFactoryForTesting filter_factory_for_testing_; |
| 500 |
| 509 DISALLOW_COPY_AND_ASSIGN(TraceLog); | 501 DISALLOW_COPY_AND_ASSIGN(TraceLog); |
| 510 }; | 502 }; |
| 511 | 503 |
| 512 } // namespace trace_event | 504 } // namespace trace_event |
| 513 } // namespace base | 505 } // namespace base |
| 514 | 506 |
| 515 #endif // BASE_TRACE_EVENT_TRACE_LOG_H_ | 507 #endif // BASE_TRACE_EVENT_TRACE_LOG_H_ |
| OLD | NEW |