| 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 #ifndef BASE_TRACE_EVENT_TRACE_EVENT_H_ | 5 #ifndef BASE_TRACE_EVENT_TRACE_EVENT_H_ |
| 6 #define BASE_TRACE_EVENT_TRACE_EVENT_H_ | 6 #define BASE_TRACE_EVENT_TRACE_EVENT_H_ |
| 7 | 7 |
| 8 // This header file defines implementation details of how the trace macros in | 8 // This header file defines implementation details of how the trace macros in |
| 9 // trace_event_common.h collect and store trace events. Anything not | 9 // trace_event_common.h collect and store trace events. Anything not |
| 10 // implementation-specific should go in trace_event_common.h instead of here. | 10 // implementation-specific should go in trace_event_common.h instead of here. |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 // base::trace_event::TraceEventHandle TRACE_EVENT_API_ADD_TRACE_EVENT( | 103 // base::trace_event::TraceEventHandle TRACE_EVENT_API_ADD_TRACE_EVENT( |
| 104 // char phase, | 104 // char phase, |
| 105 // const unsigned char* category_group_enabled, | 105 // const unsigned char* category_group_enabled, |
| 106 // const char* name, | 106 // const char* name, |
| 107 // const char* scope, | 107 // const char* scope, |
| 108 // unsigned long long id, | 108 // unsigned long long id, |
| 109 // int num_args, | 109 // int num_args, |
| 110 // const char** arg_names, | 110 // const char** arg_names, |
| 111 // const unsigned char* arg_types, | 111 // const unsigned char* arg_types, |
| 112 // const unsigned long long* arg_values, | 112 // const unsigned long long* arg_values, |
| 113 // const scoped_refptr<ConvertableToTraceFormat>* | 113 // scoped_ptr<ConvertableToTraceFormat>* |
| 114 // convertable_values, | 114 // convertable_values, |
| 115 // unsigned int flags) | 115 // unsigned int flags) |
| 116 #define TRACE_EVENT_API_ADD_TRACE_EVENT \ | 116 #define TRACE_EVENT_API_ADD_TRACE_EVENT \ |
| 117 base::trace_event::TraceLog::GetInstance()->AddTraceEvent | 117 base::trace_event::TraceLog::GetInstance()->AddTraceEvent |
| 118 | 118 |
| 119 // Add a trace event to the platform tracing system. | 119 // Add a trace event to the platform tracing system. |
| 120 // base::trace_event::TraceEventHandle | 120 // base::trace_event::TraceEventHandle |
| 121 // TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_BIND_ID( | 121 // TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_BIND_ID( |
| 122 // char phase, | 122 // char phase, |
| 123 // const unsigned char* category_group_enabled, | 123 // const unsigned char* category_group_enabled, |
| 124 // const char* name, | 124 // const char* name, |
| 125 // const char* scope, | 125 // const char* scope, |
| 126 // unsigned long long id, | 126 // unsigned long long id, |
| 127 // unsigned long long bind_id, | 127 // unsigned long long bind_id, |
| 128 // int num_args, | 128 // int num_args, |
| 129 // const char** arg_names, | 129 // const char** arg_names, |
| 130 // const unsigned char* arg_types, | 130 // const unsigned char* arg_types, |
| 131 // const unsigned long long* arg_values, | 131 // const unsigned long long* arg_values, |
| 132 // const scoped_refptr<ConvertableToTraceFormat>* | 132 // scoped_ptr<ConvertableToTraceFormat>* |
| 133 // convertable_values, | 133 // convertable_values, |
| 134 // unsigned int flags) | 134 // unsigned int flags) |
| 135 #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_BIND_ID \ | 135 #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_BIND_ID \ |
| 136 base::trace_event::TraceLog::GetInstance()->AddTraceEventWithBindId | 136 base::trace_event::TraceLog::GetInstance()->AddTraceEventWithBindId |
| 137 | 137 |
| 138 // Add a trace event to the platform tracing system overriding the pid. | 138 // Add a trace event to the platform tracing system overriding the pid. |
| 139 // The resulting event will have tid = pid == (process_id passed here). | 139 // The resulting event will have tid = pid == (process_id passed here). |
| 140 // base::trace_event::TraceEventHandle | 140 // base::trace_event::TraceEventHandle |
| 141 // TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_PROCESS_ID( | 141 // TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_PROCESS_ID( |
| 142 // char phase, | 142 // char phase, |
| 143 // const unsigned char* category_group_enabled, | 143 // const unsigned char* category_group_enabled, |
| 144 // const char* name, | 144 // const char* name, |
| 145 // const char* scope, | 145 // const char* scope, |
| 146 // unsigned long long id, | 146 // unsigned long long id, |
| 147 // int process_id, | 147 // int process_id, |
| 148 // int num_args, | 148 // int num_args, |
| 149 // const char** arg_names, | 149 // const char** arg_names, |
| 150 // const unsigned char* arg_types, | 150 // const unsigned char* arg_types, |
| 151 // const unsigned long long* arg_values, | 151 // const unsigned long long* arg_values, |
| 152 // const scoped_refptr<ConvertableToTraceFormat>* | 152 // scoped_ptr<ConvertableToTraceFormat>* |
| 153 // convertable_values, | 153 // convertable_values, |
| 154 // unsigned int flags) | 154 // unsigned int flags) |
| 155 #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_PROCESS_ID \ | 155 #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_PROCESS_ID \ |
| 156 base::trace_event::TraceLog::GetInstance()->AddTraceEventWithProcessId | 156 base::trace_event::TraceLog::GetInstance()->AddTraceEventWithProcessId |
| 157 | 157 |
| 158 // Add a trace event to the platform tracing system. | 158 // Add a trace event to the platform tracing system. |
| 159 // base::trace_event::TraceEventHandle | 159 // base::trace_event::TraceEventHandle |
| 160 // TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_TIMESTAMP( | 160 // TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_TIMESTAMP( |
| 161 // char phase, | 161 // char phase, |
| 162 // const unsigned char* category_group_enabled, | 162 // const unsigned char* category_group_enabled, |
| 163 // const char* name, | 163 // const char* name, |
| 164 // const char* scope, | 164 // const char* scope, |
| 165 // unsigned long long id, | 165 // unsigned long long id, |
| 166 // int thread_id, | 166 // int thread_id, |
| 167 // const TimeTicks& timestamp, | 167 // const TimeTicks& timestamp, |
| 168 // int num_args, | 168 // int num_args, |
| 169 // const char** arg_names, | 169 // const char** arg_names, |
| 170 // const unsigned char* arg_types, | 170 // const unsigned char* arg_types, |
| 171 // const unsigned long long* arg_values, | 171 // const unsigned long long* arg_values, |
| 172 // const scoped_refptr<ConvertableToTraceFormat>* | 172 // scoped_ptr<ConvertableToTraceFormat>* |
| 173 // convertable_values, | 173 // convertable_values, |
| 174 // unsigned int flags) | 174 // unsigned int flags) |
| 175 #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP \ | 175 #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP \ |
| 176 base::trace_event::TraceLog::GetInstance() \ | 176 base::trace_event::TraceLog::GetInstance() \ |
| 177 ->AddTraceEventWithThreadIdAndTimestamp | 177 ->AddTraceEventWithThreadIdAndTimestamp |
| 178 | 178 |
| 179 // Set the duration field of a COMPLETE trace event. | 179 // Set the duration field of a COMPLETE trace event. |
| 180 // void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( | 180 // void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( |
| 181 // const unsigned char* category_group_enabled, | 181 // const unsigned char* category_group_enabled, |
| 182 // const char* name, | 182 // const char* name, |
| 183 // base::trace_event::TraceEventHandle id) | 183 // base::trace_event::TraceEventHandle id) |
| 184 #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ | 184 #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ |
| 185 base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDuration | 185 base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDuration |
| 186 | 186 |
| 187 // Adds a metadata event to the trace log. The |AppendValueAsTraceFormat| method | 187 // Adds a metadata event to the trace log. The |AppendValueAsTraceFormat| method |
| 188 // on the convertable value will be called at flush time. | 188 // on the convertable value will be called at flush time. |
| 189 // TRACE_EVENT_API_ADD_METADATA_EVENT( | 189 // TRACE_EVENT_API_ADD_METADATA_EVENT( |
| 190 // const unsigned char* category_group_enabled, | 190 // const unsigned char* category_group_enabled, |
| 191 // const char* event_name, | 191 // const char* event_name, |
| 192 // const char* arg_name, | 192 // const char* arg_name, |
| 193 // scoped_refptr<ConvertableToTraceFormat> arg_value) | 193 // scoped_ptr<ConvertableToTraceFormat> arg_value) |
| 194 #define TRACE_EVENT_API_ADD_METADATA_EVENT \ | 194 #define TRACE_EVENT_API_ADD_METADATA_EVENT \ |
| 195 trace_event_internal::AddMetadataEvent | 195 trace_event_internal::AddMetadataEvent |
| 196 | 196 |
| 197 // Defines atomic operations used internally by the tracing system. | 197 // Defines atomic operations used internally by the tracing system. |
| 198 #define TRACE_EVENT_API_ATOMIC_WORD base::subtle::AtomicWord | 198 #define TRACE_EVENT_API_ATOMIC_WORD base::subtle::AtomicWord |
| 199 #define TRACE_EVENT_API_ATOMIC_LOAD(var) base::subtle::NoBarrier_Load(&(var)) | 199 #define TRACE_EVENT_API_ATOMIC_LOAD(var) base::subtle::NoBarrier_Load(&(var)) |
| 200 #define TRACE_EVENT_API_ATOMIC_STORE(var, value) \ | 200 #define TRACE_EVENT_API_ATOMIC_STORE(var, value) \ |
| 201 base::subtle::NoBarrier_Store(&(var), (value)) | 201 base::subtle::NoBarrier_Store(&(var), (value)) |
| 202 | 202 |
| 203 // Defines visibility for classes in trace_event.h | 203 // Defines visibility for classes in trace_event.h |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 604 *type = TRACE_VALUE_TYPE_INT; | 604 *type = TRACE_VALUE_TYPE_INT; |
| 605 *value = arg.ToInternalValue(); | 605 *value = arg.ToInternalValue(); |
| 606 } | 606 } |
| 607 | 607 |
| 608 // These AddTraceEvent and AddTraceEventWithThreadIdAndTimestamp template | 608 // These AddTraceEvent and AddTraceEventWithThreadIdAndTimestamp template |
| 609 // functions are defined here instead of in the macro, because the arg_values | 609 // functions are defined here instead of in the macro, because the arg_values |
| 610 // could be temporary objects, such as std::string. In order to store | 610 // could be temporary objects, such as std::string. In order to store |
| 611 // pointers to the internal c_str and pass through to the tracing API, | 611 // pointers to the internal c_str and pass through to the tracing API, |
| 612 // the arg_values must live throughout these procedures. | 612 // the arg_values must live throughout these procedures. |
| 613 | 613 |
| 614 template <class ARG1_CONVERTABLE_TYPE> |
| 614 static inline base::trace_event::TraceEventHandle | 615 static inline base::trace_event::TraceEventHandle |
| 615 AddTraceEventWithThreadIdAndTimestamp( | 616 AddTraceEventWithThreadIdAndTimestamp( |
| 616 char phase, | 617 char phase, |
| 617 const unsigned char* category_group_enabled, | 618 const unsigned char* category_group_enabled, |
| 618 const char* name, | 619 const char* name, |
| 619 const char* scope, | 620 const char* scope, |
| 620 unsigned long long id, | 621 unsigned long long id, |
| 621 int thread_id, | 622 int thread_id, |
| 622 const base::TimeTicks& timestamp, | 623 const base::TimeTicks& timestamp, |
| 623 unsigned int flags, | 624 unsigned int flags, |
| 624 unsigned long long bind_id, | 625 unsigned long long bind_id, |
| 625 const char* arg1_name, | 626 const char* arg1_name, |
| 626 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& | 627 scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val) { |
| 627 arg1_val) { | |
| 628 const int num_args = 1; | 628 const int num_args = 1; |
| 629 unsigned char arg_types[1] = { TRACE_VALUE_TYPE_CONVERTABLE }; | 629 unsigned char arg_types[1] = { TRACE_VALUE_TYPE_CONVERTABLE }; |
| 630 scoped_ptr<base::trace_event::ConvertableToTraceFormat> |
| 631 convertable_values[1] = {std::move(arg1_val)}; |
| 630 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( | 632 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( |
| 631 phase, category_group_enabled, name, scope, id, bind_id, thread_id, | 633 phase, category_group_enabled, name, scope, id, bind_id, thread_id, |
| 632 timestamp, num_args, &arg1_name, arg_types, NULL, &arg1_val, flags); | 634 timestamp, num_args, &arg1_name, arg_types, NULL, convertable_values, |
| 635 flags); |
| 633 } | 636 } |
| 634 | 637 |
| 635 template<class ARG1_TYPE> | 638 template <class ARG1_TYPE, class ARG2_CONVERTABLE_TYPE> |
| 636 static inline base::trace_event::TraceEventHandle | 639 static inline base::trace_event::TraceEventHandle |
| 637 AddTraceEventWithThreadIdAndTimestamp( | 640 AddTraceEventWithThreadIdAndTimestamp( |
| 638 char phase, | 641 char phase, |
| 639 const unsigned char* category_group_enabled, | 642 const unsigned char* category_group_enabled, |
| 640 const char* name, | 643 const char* name, |
| 641 const char* scope, | 644 const char* scope, |
| 642 unsigned long long id, | 645 unsigned long long id, |
| 643 int thread_id, | 646 int thread_id, |
| 644 const base::TimeTicks& timestamp, | 647 const base::TimeTicks& timestamp, |
| 645 unsigned int flags, | 648 unsigned int flags, |
| 646 unsigned long long bind_id, | 649 unsigned long long bind_id, |
| 647 const char* arg1_name, | 650 const char* arg1_name, |
| 648 const ARG1_TYPE& arg1_val, | 651 const ARG1_TYPE& arg1_val, |
| 649 const char* arg2_name, | 652 const char* arg2_name, |
| 650 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& | 653 scoped_ptr<ARG2_CONVERTABLE_TYPE> arg2_val) { |
| 651 arg2_val) { | |
| 652 const int num_args = 2; | 654 const int num_args = 2; |
| 653 const char* arg_names[2] = { arg1_name, arg2_name }; | 655 const char* arg_names[2] = { arg1_name, arg2_name }; |
| 654 | 656 |
| 655 unsigned char arg_types[2]; | 657 unsigned char arg_types[2]; |
| 656 unsigned long long arg_values[2]; | 658 unsigned long long arg_values[2]; |
| 657 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); | 659 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); |
| 658 arg_types[1] = TRACE_VALUE_TYPE_CONVERTABLE; | 660 arg_types[1] = TRACE_VALUE_TYPE_CONVERTABLE; |
| 659 | 661 scoped_ptr<base::trace_event::ConvertableToTraceFormat> |
| 660 scoped_refptr<base::trace_event::ConvertableToTraceFormat> | 662 convertable_values[2] = {nullptr, std::move(arg2_val)}; |
| 661 convertable_values[2]; | |
| 662 convertable_values[1] = arg2_val; | |
| 663 | |
| 664 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( | 663 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( |
| 665 phase, category_group_enabled, name, scope, id, bind_id, thread_id, | 664 phase, category_group_enabled, name, scope, id, bind_id, thread_id, |
| 666 timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, | 665 timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, |
| 667 flags); | 666 flags); |
| 668 } | 667 } |
| 669 | 668 |
| 670 template<class ARG2_TYPE> | 669 template <class ARG1_CONVERTABLE_TYPE, class ARG2_TYPE> |
| 671 static inline base::trace_event::TraceEventHandle | 670 static inline base::trace_event::TraceEventHandle |
| 672 AddTraceEventWithThreadIdAndTimestamp( | 671 AddTraceEventWithThreadIdAndTimestamp( |
| 673 char phase, | 672 char phase, |
| 674 const unsigned char* category_group_enabled, | 673 const unsigned char* category_group_enabled, |
| 675 const char* name, | 674 const char* name, |
| 676 const char* scope, | 675 const char* scope, |
| 677 unsigned long long id, | 676 unsigned long long id, |
| 678 int thread_id, | 677 int thread_id, |
| 679 const base::TimeTicks& timestamp, | 678 const base::TimeTicks& timestamp, |
| 680 unsigned int flags, | 679 unsigned int flags, |
| 681 unsigned long long bind_id, | 680 unsigned long long bind_id, |
| 682 const char* arg1_name, | 681 const char* arg1_name, |
| 683 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& arg1_val, | 682 scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val, |
| 684 const char* arg2_name, | 683 const char* arg2_name, |
| 685 const ARG2_TYPE& arg2_val) { | 684 const ARG2_TYPE& arg2_val) { |
| 686 const int num_args = 2; | 685 const int num_args = 2; |
| 687 const char* arg_names[2] = { arg1_name, arg2_name }; | 686 const char* arg_names[2] = { arg1_name, arg2_name }; |
| 688 | 687 |
| 689 unsigned char arg_types[2]; | 688 unsigned char arg_types[2]; |
| 690 unsigned long long arg_values[2]; | 689 unsigned long long arg_values[2]; |
| 691 arg_types[0] = TRACE_VALUE_TYPE_CONVERTABLE; | 690 arg_types[0] = TRACE_VALUE_TYPE_CONVERTABLE; |
| 692 arg_values[0] = 0; | 691 arg_values[0] = 0; |
| 693 SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]); | 692 SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]); |
| 694 | 693 scoped_ptr<base::trace_event::ConvertableToTraceFormat> |
| 695 scoped_refptr<base::trace_event::ConvertableToTraceFormat> | 694 convertable_values[2] = {std::move(arg1_val), nullptr}; |
| 696 convertable_values[2]; | |
| 697 convertable_values[0] = arg1_val; | |
| 698 | |
| 699 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( | 695 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( |
| 700 phase, category_group_enabled, name, scope, id, bind_id, thread_id, | 696 phase, category_group_enabled, name, scope, id, bind_id, thread_id, |
| 701 timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, | 697 timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, |
| 702 flags); | 698 flags); |
| 703 } | 699 } |
| 704 | 700 |
| 701 template <class ARG1_CONVERTABLE_TYPE, class ARG2_CONVERTABLE_TYPE> |
| 705 static inline base::trace_event::TraceEventHandle | 702 static inline base::trace_event::TraceEventHandle |
| 706 AddTraceEventWithThreadIdAndTimestamp( | 703 AddTraceEventWithThreadIdAndTimestamp( |
| 707 char phase, | 704 char phase, |
| 708 const unsigned char* category_group_enabled, | 705 const unsigned char* category_group_enabled, |
| 709 const char* name, | 706 const char* name, |
| 710 const char* scope, | 707 const char* scope, |
| 711 unsigned long long id, | 708 unsigned long long id, |
| 712 int thread_id, | 709 int thread_id, |
| 713 const base::TimeTicks& timestamp, | 710 const base::TimeTicks& timestamp, |
| 714 unsigned int flags, | 711 unsigned int flags, |
| 715 unsigned long long bind_id, | 712 unsigned long long bind_id, |
| 716 const char* arg1_name, | 713 const char* arg1_name, |
| 717 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& arg1_val, | 714 scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val, |
| 718 const char* arg2_name, | 715 const char* arg2_name, |
| 719 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& | 716 scoped_ptr<ARG2_CONVERTABLE_TYPE> arg2_val) { |
| 720 arg2_val) { | |
| 721 const int num_args = 2; | 717 const int num_args = 2; |
| 722 const char* arg_names[2] = { arg1_name, arg2_name }; | 718 const char* arg_names[2] = { arg1_name, arg2_name }; |
| 723 unsigned char arg_types[2] = | 719 unsigned char arg_types[2] = |
| 724 { TRACE_VALUE_TYPE_CONVERTABLE, TRACE_VALUE_TYPE_CONVERTABLE }; | 720 { TRACE_VALUE_TYPE_CONVERTABLE, TRACE_VALUE_TYPE_CONVERTABLE }; |
| 725 scoped_refptr<base::trace_event::ConvertableToTraceFormat> | 721 scoped_ptr<base::trace_event::ConvertableToTraceFormat> |
| 726 convertable_values[2] = {arg1_val, arg2_val}; | 722 convertable_values[2] = {std::move(arg1_val), std::move(arg2_val)}; |
| 727 | |
| 728 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( | 723 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( |
| 729 phase, category_group_enabled, name, scope, id, bind_id, thread_id, | 724 phase, category_group_enabled, name, scope, id, bind_id, thread_id, |
| 730 timestamp, num_args, arg_names, arg_types, NULL, convertable_values, | 725 timestamp, num_args, arg_names, arg_types, NULL, convertable_values, |
| 731 flags); | 726 flags); |
| 732 } | 727 } |
| 733 | 728 |
| 734 static inline base::trace_event::TraceEventHandle | 729 static inline base::trace_event::TraceEventHandle |
| 735 AddTraceEventWithThreadIdAndTimestamp( | 730 AddTraceEventWithThreadIdAndTimestamp( |
| 736 char phase, | 731 char phase, |
| 737 const unsigned char* category_group_enabled, | 732 const unsigned char* category_group_enabled, |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 796 unsigned long long bind_id, | 791 unsigned long long bind_id, |
| 797 const char* arg1_name, | 792 const char* arg1_name, |
| 798 const ARG1_TYPE& arg1_val) { | 793 const ARG1_TYPE& arg1_val) { |
| 799 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); | 794 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| 800 base::TimeTicks now = base::TimeTicks::Now(); | 795 base::TimeTicks now = base::TimeTicks::Now(); |
| 801 return AddTraceEventWithThreadIdAndTimestamp( | 796 return AddTraceEventWithThreadIdAndTimestamp( |
| 802 phase, category_group_enabled, name, scope, id, thread_id, now, flags, | 797 phase, category_group_enabled, name, scope, id, thread_id, now, flags, |
| 803 bind_id, arg1_name, arg1_val); | 798 bind_id, arg1_name, arg1_val); |
| 804 } | 799 } |
| 805 | 800 |
| 801 template <class ARG1_CONVERTABLE_TYPE> |
| 802 static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| 803 char phase, |
| 804 const unsigned char* category_group_enabled, |
| 805 const char* name, |
| 806 const char* scope, |
| 807 unsigned long long id, |
| 808 unsigned int flags, |
| 809 unsigned long long bind_id, |
| 810 const char* arg1_name, |
| 811 scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val) { |
| 812 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| 813 base::TimeTicks now = base::TimeTicks::Now(); |
| 814 return AddTraceEventWithThreadIdAndTimestamp( |
| 815 phase, category_group_enabled, name, scope, id, thread_id, now, flags, |
| 816 bind_id, arg1_name, std::move(arg1_val)); |
| 817 } |
| 818 |
| 806 template<class ARG1_TYPE, class ARG2_TYPE> | 819 template<class ARG1_TYPE, class ARG2_TYPE> |
| 807 static inline base::trace_event::TraceEventHandle | 820 static inline base::trace_event::TraceEventHandle |
| 808 AddTraceEventWithThreadIdAndTimestamp( | 821 AddTraceEventWithThreadIdAndTimestamp( |
| 809 char phase, | 822 char phase, |
| 810 const unsigned char* category_group_enabled, | 823 const unsigned char* category_group_enabled, |
| 811 const char* name, | 824 const char* name, |
| 812 const char* scope, | 825 const char* scope, |
| 813 unsigned long long id, | 826 unsigned long long id, |
| 814 int thread_id, | 827 int thread_id, |
| 815 const base::TimeTicks& timestamp, | 828 const base::TimeTicks& timestamp, |
| 816 unsigned int flags, | 829 unsigned int flags, |
| 817 unsigned long long bind_id, | 830 unsigned long long bind_id, |
| 818 const char* arg1_name, | 831 const char* arg1_name, |
| 819 const ARG1_TYPE& arg1_val, | 832 const ARG1_TYPE& arg1_val, |
| 820 const char* arg2_name, | 833 const char* arg2_name, |
| 821 const ARG2_TYPE& arg2_val) { | 834 const ARG2_TYPE& arg2_val) { |
| 822 const int num_args = 2; | 835 const int num_args = 2; |
| 823 const char* arg_names[2] = { arg1_name, arg2_name }; | 836 const char* arg_names[2] = { arg1_name, arg2_name }; |
| 824 unsigned char arg_types[2]; | 837 unsigned char arg_types[2]; |
| 825 unsigned long long arg_values[2]; | 838 unsigned long long arg_values[2]; |
| 826 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); | 839 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); |
| 827 SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]); | 840 SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]); |
| 828 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( | 841 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( |
| 829 phase, category_group_enabled, name, scope, id, bind_id, thread_id, | 842 phase, category_group_enabled, name, scope, id, bind_id, thread_id, |
| 830 timestamp, num_args, arg_names, arg_types, arg_values, NULL, flags); | 843 timestamp, num_args, arg_names, arg_types, arg_values, NULL, flags); |
| 831 } | 844 } |
| 832 | 845 |
| 846 template <class ARG1_CONVERTABLE_TYPE, class ARG2_TYPE> |
| 847 static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| 848 char phase, |
| 849 const unsigned char* category_group_enabled, |
| 850 const char* name, |
| 851 const char* scope, |
| 852 unsigned long long id, |
| 853 unsigned int flags, |
| 854 unsigned long long bind_id, |
| 855 const char* arg1_name, |
| 856 scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val, |
| 857 const char* arg2_name, |
| 858 const ARG2_TYPE& arg2_val) { |
| 859 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| 860 base::TimeTicks now = base::TimeTicks::Now(); |
| 861 return AddTraceEventWithThreadIdAndTimestamp( |
| 862 phase, category_group_enabled, name, scope, id, thread_id, now, flags, |
| 863 bind_id, arg1_name, std::move(arg1_val), arg2_name, arg2_val); |
| 864 } |
| 865 |
| 866 template <class ARG1_TYPE, class ARG2_CONVERTABLE_TYPE> |
| 867 static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| 868 char phase, |
| 869 const unsigned char* category_group_enabled, |
| 870 const char* name, |
| 871 const char* scope, |
| 872 unsigned long long id, |
| 873 unsigned int flags, |
| 874 unsigned long long bind_id, |
| 875 const char* arg1_name, |
| 876 const ARG1_TYPE& arg1_val, |
| 877 const char* arg2_name, |
| 878 scoped_ptr<ARG2_CONVERTABLE_TYPE> arg2_val) { |
| 879 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| 880 base::TimeTicks now = base::TimeTicks::Now(); |
| 881 return AddTraceEventWithThreadIdAndTimestamp( |
| 882 phase, category_group_enabled, name, scope, id, thread_id, now, flags, |
| 883 bind_id, arg1_name, arg1_val, arg2_name, std::move(arg2_val)); |
| 884 } |
| 885 |
| 886 template <class ARG1_CONVERTABLE_TYPE, class ARG2_CONVERTABLE_TYPE> |
| 887 static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| 888 char phase, |
| 889 const unsigned char* category_group_enabled, |
| 890 const char* name, |
| 891 const char* scope, |
| 892 unsigned long long id, |
| 893 unsigned int flags, |
| 894 unsigned long long bind_id, |
| 895 const char* arg1_name, |
| 896 scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val, |
| 897 const char* arg2_name, |
| 898 scoped_ptr<ARG2_CONVERTABLE_TYPE> arg2_val) { |
| 899 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| 900 base::TimeTicks now = base::TimeTicks::Now(); |
| 901 return AddTraceEventWithThreadIdAndTimestamp( |
| 902 phase, category_group_enabled, name, scope, id, thread_id, now, flags, |
| 903 bind_id, arg1_name, std::move(arg1_val), arg2_name, std::move(arg2_val)); |
| 904 } |
| 905 |
| 833 template<class ARG1_TYPE, class ARG2_TYPE> | 906 template<class ARG1_TYPE, class ARG2_TYPE> |
| 834 static inline base::trace_event::TraceEventHandle AddTraceEvent( | 907 static inline base::trace_event::TraceEventHandle AddTraceEvent( |
| 835 char phase, | 908 char phase, |
| 836 const unsigned char* category_group_enabled, | 909 const unsigned char* category_group_enabled, |
| 837 const char* name, | 910 const char* name, |
| 838 const char* scope, | 911 const char* scope, |
| 839 unsigned long long id, | 912 unsigned long long id, |
| 840 unsigned int flags, | 913 unsigned int flags, |
| 841 unsigned long long bind_id, | 914 unsigned long long bind_id, |
| 842 const char* arg1_name, | 915 const char* arg1_name, |
| 843 const ARG1_TYPE& arg1_val, | 916 const ARG1_TYPE& arg1_val, |
| 844 const char* arg2_name, | 917 const char* arg2_name, |
| 845 const ARG2_TYPE& arg2_val) { | 918 const ARG2_TYPE& arg2_val) { |
| 846 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); | 919 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); |
| 847 base::TimeTicks now = base::TimeTicks::Now(); | 920 base::TimeTicks now = base::TimeTicks::Now(); |
| 848 return AddTraceEventWithThreadIdAndTimestamp( | 921 return AddTraceEventWithThreadIdAndTimestamp( |
| 849 phase, category_group_enabled, name, scope, id, thread_id, now, flags, | 922 phase, category_group_enabled, name, scope, id, thread_id, now, flags, |
| 850 bind_id, arg1_name, arg1_val, arg2_name, arg2_val); | 923 bind_id, arg1_name, arg1_val, arg2_name, arg2_val); |
| 851 } | 924 } |
| 852 | 925 |
| 926 template <class ARG1_CONVERTABLE_TYPE> |
| 853 static inline void AddMetadataEvent( | 927 static inline void AddMetadataEvent( |
| 854 const unsigned char* category_group_enabled, | 928 const unsigned char* category_group_enabled, |
| 855 const char* event_name, | 929 const char* event_name, |
| 856 const char* arg_name, | 930 const char* arg_name, |
| 857 scoped_refptr<base::trace_event::ConvertableToTraceFormat> arg_value) { | 931 scoped_ptr<ARG1_CONVERTABLE_TYPE> arg_value) { |
| 858 const char* arg_names[1] = {arg_name}; | 932 const char* arg_names[1] = {arg_name}; |
| 859 scoped_refptr<base::trace_event::ConvertableToTraceFormat> | |
| 860 convertable_values[1] = {arg_value}; | |
| 861 unsigned char arg_types[1] = {TRACE_VALUE_TYPE_CONVERTABLE}; | 933 unsigned char arg_types[1] = {TRACE_VALUE_TYPE_CONVERTABLE}; |
| 934 scoped_ptr<base::trace_event::ConvertableToTraceFormat> |
| 935 convertable_values[1] = {std::move(arg_value)}; |
| 862 base::trace_event::TraceLog::GetInstance()->AddMetadataEvent( | 936 base::trace_event::TraceLog::GetInstance()->AddMetadataEvent( |
| 863 category_group_enabled, event_name, | 937 category_group_enabled, event_name, |
| 864 1, // num_args | 938 1, // num_args |
| 865 arg_names, arg_types, | 939 arg_names, arg_types, |
| 866 nullptr, // arg_values | 940 nullptr, // arg_values |
| 867 convertable_values, TRACE_EVENT_FLAG_NONE); | 941 convertable_values, TRACE_EVENT_FLAG_NONE); |
| 868 } | 942 } |
| 869 | 943 |
| 870 template <class ARG1_TYPE> | 944 template <class ARG1_TYPE> |
| 871 static void AddMetadataEvent(const unsigned char* category_group_enabled, | 945 static void AddMetadataEvent(const unsigned char* category_group_enabled, |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 999 const char* name_; | 1073 const char* name_; |
| 1000 IDType id_; | 1074 IDType id_; |
| 1001 | 1075 |
| 1002 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject); | 1076 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject); |
| 1003 }; | 1077 }; |
| 1004 | 1078 |
| 1005 } // namespace trace_event | 1079 } // namespace trace_event |
| 1006 } // namespace base | 1080 } // namespace base |
| 1007 | 1081 |
| 1008 #endif // BASE_TRACE_EVENT_TRACE_EVENT_H_ | 1082 #endif // BASE_TRACE_EVENT_TRACE_EVENT_H_ |
| OLD | NEW |