OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 5 |
6 #ifndef BASE_DEBUG_TRACE_EVENT_IMPL_H_ | 6 #ifndef BASE_DEBUG_TRACE_EVENT_IMPL_H_ |
7 #define BASE_DEBUG_TRACE_EVENT_IMPL_H_ | 7 #define BASE_DEBUG_TRACE_EVENT_IMPL_H_ |
8 | 8 |
9 #include <stack> | 9 #include <stack> |
10 #include <string> | 10 #include <string> |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 // Returns true on success. | 413 // Returns true on success. |
414 bool SetFromString(const std::string& options_string); | 414 bool SetFromString(const std::string& options_string); |
415 | 415 |
416 std::string ToString() const; | 416 std::string ToString() const; |
417 | 417 |
418 TraceRecordMode record_mode; | 418 TraceRecordMode record_mode; |
419 bool enable_sampling; | 419 bool enable_sampling; |
420 bool enable_systrace; | 420 bool enable_systrace; |
421 }; | 421 }; |
422 | 422 |
| 423 struct BASE_EXPORT TraceLogStatus { |
| 424 TraceLogStatus(); |
| 425 ~TraceLogStatus(); |
| 426 size_t event_capacity; |
| 427 size_t event_count; |
| 428 }; |
| 429 |
423 class BASE_EXPORT TraceLog { | 430 class BASE_EXPORT TraceLog { |
424 public: | 431 public: |
425 enum Mode { | 432 enum Mode { |
426 DISABLED = 0, | 433 DISABLED = 0, |
427 RECORDING_MODE, | 434 RECORDING_MODE, |
428 MONITORING_MODE, | 435 MONITORING_MODE, |
429 }; | 436 }; |
430 | 437 |
431 // The pointer returned from GetCategoryGroupEnabledInternal() points to a | 438 // The pointer returned from GetCategoryGroupEnabledInternal() points to a |
432 // value with zero or more of the following bits. Used in this class only. | 439 // value with zero or more of the following bits. Used in this class only. |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 virtual void OnTraceLogEnabled() = 0; | 495 virtual void OnTraceLogEnabled() = 0; |
489 | 496 |
490 // Called just after the tracing system disables, outside of the |lock_|. | 497 // Called just after the tracing system disables, outside of the |lock_|. |
491 // TraceLog::IsEnabled() is false at this point. | 498 // TraceLog::IsEnabled() is false at this point. |
492 virtual void OnTraceLogDisabled() = 0; | 499 virtual void OnTraceLogDisabled() = 0; |
493 }; | 500 }; |
494 void AddEnabledStateObserver(EnabledStateObserver* listener); | 501 void AddEnabledStateObserver(EnabledStateObserver* listener); |
495 void RemoveEnabledStateObserver(EnabledStateObserver* listener); | 502 void RemoveEnabledStateObserver(EnabledStateObserver* listener); |
496 bool HasEnabledStateObserver(EnabledStateObserver* listener) const; | 503 bool HasEnabledStateObserver(EnabledStateObserver* listener) const; |
497 | 504 |
498 float GetBufferPercentFull() const; | 505 TraceLogStatus GetStatus() const; |
499 bool BufferIsFull() const; | 506 bool BufferIsFull() const; |
500 | 507 |
501 // Not using base::Callback because of its limited by 7 parameters. | 508 // Not using base::Callback because of its limited by 7 parameters. |
502 // Also, using primitive type allows directly passing callback from WebCore. | 509 // Also, using primitive type allows directly passing callback from WebCore. |
503 // WARNING: It is possible for the previously set callback to be called | 510 // WARNING: It is possible for the previously set callback to be called |
504 // after a call to SetEventCallbackEnabled() that replaces or a call to | 511 // after a call to SetEventCallbackEnabled() that replaces or a call to |
505 // SetEventCallbackDisabled() that disables the callback. | 512 // SetEventCallbackDisabled() that disables the callback. |
506 // This callback may be invoked on any thread. | 513 // This callback may be invoked on any thread. |
507 // For TRACE_EVENT_PHASE_COMPLETE events, the client will still receive pairs | 514 // For TRACE_EVENT_PHASE_COMPLETE events, the client will still receive pairs |
508 // of TRACE_EVENT_PHASE_BEGIN and TRACE_EVENT_PHASE_END events to keep the | 515 // of TRACE_EVENT_PHASE_BEGIN and TRACE_EVENT_PHASE_END events to keep the |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
596 int process_id() const { return process_id_; } | 603 int process_id() const { return process_id_; } |
597 | 604 |
598 // Exposed for unittesting: | 605 // Exposed for unittesting: |
599 | 606 |
600 void WaitSamplingEventForTesting(); | 607 void WaitSamplingEventForTesting(); |
601 | 608 |
602 // Allows deleting our singleton instance. | 609 // Allows deleting our singleton instance. |
603 static void DeleteForTesting(); | 610 static void DeleteForTesting(); |
604 | 611 |
605 // Allow tests to inspect TraceEvents. | 612 // Allow tests to inspect TraceEvents. |
606 size_t GetEventsSize() const { return logged_events_->Size(); } | |
607 TraceEvent* GetEventByHandle(TraceEventHandle handle); | 613 TraceEvent* GetEventByHandle(TraceEventHandle handle); |
608 | 614 |
609 void SetProcessID(int process_id); | 615 void SetProcessID(int process_id); |
610 | 616 |
611 // Process sort indices, if set, override the order of a process will appear | 617 // Process sort indices, if set, override the order of a process will appear |
612 // relative to other processes in the trace viewer. Processes are sorted first | 618 // relative to other processes in the trace viewer. Processes are sorted first |
613 // on their sort index, ascending, then by their name, and then tid. | 619 // on their sort index, ascending, then by their name, and then tid. |
614 void SetProcessSortIndex(int sort_index); | 620 void SetProcessSortIndex(int sort_index); |
615 | 621 |
616 // Sets the name of the process. | 622 // Sets the name of the process. |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
799 scoped_refptr<MessageLoopProxy> flush_message_loop_proxy_; | 805 scoped_refptr<MessageLoopProxy> flush_message_loop_proxy_; |
800 subtle::AtomicWord generation_; | 806 subtle::AtomicWord generation_; |
801 | 807 |
802 DISALLOW_COPY_AND_ASSIGN(TraceLog); | 808 DISALLOW_COPY_AND_ASSIGN(TraceLog); |
803 }; | 809 }; |
804 | 810 |
805 } // namespace debug | 811 } // namespace debug |
806 } // namespace base | 812 } // namespace base |
807 | 813 |
808 #endif // BASE_DEBUG_TRACE_EVENT_IMPL_H_ | 814 #endif // BASE_DEBUG_TRACE_EVENT_IMPL_H_ |
OLD | NEW |