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

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

Issue 1717283003: tracing: Make ConvertableToTraceFormat move-only scoped_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . 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 (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_macros_common.h instead of here. 10 // implementation-specific should go in trace_macros_common.h instead of here.
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 char* event_name, 190 // const char* event_name,
191 // const char* arg_name, 191 // const char* arg_name,
192 // scoped_refptr<ConvertableToTraceFormat> arg_value) 192 // scoped_ptr<ConvertableToTraceFormat> arg_value)
193 #define TRACE_EVENT_API_ADD_METADATA_EVENT \ 193 #define TRACE_EVENT_API_ADD_METADATA_EVENT \
194 trace_event_internal::AddMetadataEvent 194 trace_event_internal::AddMetadataEvent
195 195
196 // Defines atomic operations used internally by the tracing system. 196 // Defines atomic operations used internally by the tracing system.
197 #define TRACE_EVENT_API_ATOMIC_WORD base::subtle::AtomicWord 197 #define TRACE_EVENT_API_ATOMIC_WORD base::subtle::AtomicWord
198 #define TRACE_EVENT_API_ATOMIC_LOAD(var) base::subtle::NoBarrier_Load(&(var)) 198 #define TRACE_EVENT_API_ATOMIC_LOAD(var) base::subtle::NoBarrier_Load(&(var))
199 #define TRACE_EVENT_API_ATOMIC_STORE(var, value) \ 199 #define TRACE_EVENT_API_ATOMIC_STORE(var, value) \
200 base::subtle::NoBarrier_Store(&(var), (value)) 200 base::subtle::NoBarrier_Store(&(var), (value))
201 201
202 // Defines visibility for classes in trace_event.h 202 // Defines visibility for classes in trace_event.h
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 char phase, 603 char phase,
604 const unsigned char* category_group_enabled, 604 const unsigned char* category_group_enabled,
605 const char* name, 605 const char* name,
606 const char* scope, 606 const char* scope,
607 unsigned long long id, 607 unsigned long long id,
608 int thread_id, 608 int thread_id,
609 const base::TimeTicks& timestamp, 609 const base::TimeTicks& timestamp,
610 unsigned int flags, 610 unsigned int flags,
611 unsigned long long bind_id, 611 unsigned long long bind_id,
612 const char* arg1_name, 612 const char* arg1_name,
613 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& 613 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg1_val) {
614 arg1_val) {
615 const int num_args = 1; 614 const int num_args = 1;
616 unsigned char arg_types[1] = { TRACE_VALUE_TYPE_CONVERTABLE }; 615 unsigned char arg_types[1] = { TRACE_VALUE_TYPE_CONVERTABLE };
617 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( 616 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
618 phase, category_group_enabled, name, scope, id, bind_id, thread_id, 617 phase, category_group_enabled, name, scope, id, bind_id, thread_id,
619 timestamp, num_args, &arg1_name, arg_types, NULL, &arg1_val, flags); 618 timestamp, num_args, &arg1_name, arg_types, NULL, &arg1_val, flags);
620 } 619 }
621 620
622 template<class ARG1_TYPE> 621 template <class ARG1_TYPE>
623 static inline base::trace_event::TraceEventHandle 622 static inline base::trace_event::TraceEventHandle
624 AddTraceEventWithThreadIdAndTimestamp( 623 AddTraceEventWithThreadIdAndTimestamp(
625 char phase, 624 char phase,
626 const unsigned char* category_group_enabled, 625 const unsigned char* category_group_enabled,
627 const char* name, 626 const char* name,
628 const char* scope, 627 const char* scope,
629 unsigned long long id, 628 unsigned long long id,
630 int thread_id, 629 int thread_id,
631 const base::TimeTicks& timestamp, 630 const base::TimeTicks& timestamp,
632 unsigned int flags, 631 unsigned int flags,
633 unsigned long long bind_id, 632 unsigned long long bind_id,
634 const char* arg1_name, 633 const char* arg1_name,
635 const ARG1_TYPE& arg1_val, 634 const ARG1_TYPE& arg1_val,
636 const char* arg2_name, 635 const char* arg2_name,
637 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& 636 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg2_val) {
638 arg2_val) {
639 const int num_args = 2; 637 const int num_args = 2;
640 const char* arg_names[2] = { arg1_name, arg2_name }; 638 const char* arg_names[2] = { arg1_name, arg2_name };
641 639
642 unsigned char arg_types[2]; 640 unsigned char arg_types[2];
643 unsigned long long arg_values[2]; 641 unsigned long long arg_values[2];
644 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); 642 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]);
645 arg_types[1] = TRACE_VALUE_TYPE_CONVERTABLE; 643 arg_types[1] = TRACE_VALUE_TYPE_CONVERTABLE;
646 644
647 scoped_refptr<base::trace_event::ConvertableToTraceFormat> 645 scoped_ptr<base::trace_event::ConvertableToTraceFormat> convertable_values[2];
648 convertable_values[2]; 646 convertable_values[1] = std::move(arg2_val);
649 convertable_values[1] = arg2_val;
650 647
651 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( 648 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
652 phase, category_group_enabled, name, scope, id, bind_id, thread_id, 649 phase, category_group_enabled, name, scope, id, bind_id, thread_id,
653 timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, 650 timestamp, num_args, arg_names, arg_types, arg_values, convertable_values,
654 flags); 651 flags);
655 } 652 }
656 653
657 template<class ARG2_TYPE> 654 template <class ARG2_TYPE>
658 static inline base::trace_event::TraceEventHandle 655 static inline base::trace_event::TraceEventHandle
659 AddTraceEventWithThreadIdAndTimestamp( 656 AddTraceEventWithThreadIdAndTimestamp(
660 char phase, 657 char phase,
661 const unsigned char* category_group_enabled, 658 const unsigned char* category_group_enabled,
662 const char* name, 659 const char* name,
663 const char* scope, 660 const char* scope,
664 unsigned long long id, 661 unsigned long long id,
665 int thread_id, 662 int thread_id,
666 const base::TimeTicks& timestamp, 663 const base::TimeTicks& timestamp,
667 unsigned int flags, 664 unsigned int flags,
668 unsigned long long bind_id, 665 unsigned long long bind_id,
669 const char* arg1_name, 666 const char* arg1_name,
670 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& arg1_val, 667 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg1_val,
671 const char* arg2_name, 668 const char* arg2_name,
672 const ARG2_TYPE& arg2_val) { 669 const ARG2_TYPE& arg2_val) {
673 const int num_args = 2; 670 const int num_args = 2;
674 const char* arg_names[2] = { arg1_name, arg2_name }; 671 const char* arg_names[2] = { arg1_name, arg2_name };
675 672
676 unsigned char arg_types[2]; 673 unsigned char arg_types[2];
677 unsigned long long arg_values[2]; 674 unsigned long long arg_values[2];
678 arg_types[0] = TRACE_VALUE_TYPE_CONVERTABLE; 675 arg_types[0] = TRACE_VALUE_TYPE_CONVERTABLE;
679 arg_values[0] = 0; 676 arg_values[0] = 0;
680 SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]); 677 SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]);
681 678
682 scoped_refptr<base::trace_event::ConvertableToTraceFormat> 679 scoped_ptr<base::trace_event::ConvertableToTraceFormat> convertable_values[2];
683 convertable_values[2]; 680 convertable_values[0] = std::move(arg1_val);
684 convertable_values[0] = arg1_val;
685 681
686 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( 682 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
687 phase, category_group_enabled, name, scope, id, bind_id, thread_id, 683 phase, category_group_enabled, name, scope, id, bind_id, thread_id,
688 timestamp, num_args, arg_names, arg_types, arg_values, convertable_values, 684 timestamp, num_args, arg_names, arg_types, arg_values, convertable_values,
689 flags); 685 flags);
690 } 686 }
691 687
692 static inline base::trace_event::TraceEventHandle 688 static inline base::trace_event::TraceEventHandle
693 AddTraceEventWithThreadIdAndTimestamp( 689 AddTraceEventWithThreadIdAndTimestamp(
694 char phase, 690 char phase,
695 const unsigned char* category_group_enabled, 691 const unsigned char* category_group_enabled,
696 const char* name, 692 const char* name,
697 const char* scope, 693 const char* scope,
698 unsigned long long id, 694 unsigned long long id,
699 int thread_id, 695 int thread_id,
700 const base::TimeTicks& timestamp, 696 const base::TimeTicks& timestamp,
701 unsigned int flags, 697 unsigned int flags,
702 unsigned long long bind_id, 698 unsigned long long bind_id,
703 const char* arg1_name, 699 const char* arg1_name,
704 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& arg1_val, 700 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg1_val,
705 const char* arg2_name, 701 const char* arg2_name,
706 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& 702 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg2_val) {
707 arg2_val) {
708 const int num_args = 2; 703 const int num_args = 2;
709 const char* arg_names[2] = { arg1_name, arg2_name }; 704 const char* arg_names[2] = { arg1_name, arg2_name };
710 unsigned char arg_types[2] = 705 unsigned char arg_types[2] =
711 { TRACE_VALUE_TYPE_CONVERTABLE, TRACE_VALUE_TYPE_CONVERTABLE }; 706 { TRACE_VALUE_TYPE_CONVERTABLE, TRACE_VALUE_TYPE_CONVERTABLE };
712 scoped_refptr<base::trace_event::ConvertableToTraceFormat> 707 scoped_ptr<base::trace_event::ConvertableToTraceFormat>
713 convertable_values[2] = {arg1_val, arg2_val}; 708 convertable_values[2] = {std::move(arg1_val), std::move(arg2_val)};
714 709
715 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( 710 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
716 phase, category_group_enabled, name, scope, id, bind_id, thread_id, 711 phase, category_group_enabled, name, scope, id, bind_id, thread_id,
717 timestamp, num_args, arg_names, arg_types, NULL, convertable_values, 712 timestamp, num_args, arg_names, arg_types, NULL, convertable_values,
718 flags); 713 flags);
719 } 714 }
720 715
721 static inline base::trace_event::TraceEventHandle 716 static inline base::trace_event::TraceEventHandle
722 AddTraceEventWithThreadIdAndTimestamp( 717 AddTraceEventWithThreadIdAndTimestamp(
723 char phase, 718 char phase,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 const ARG1_TYPE& arg1_val) { 760 const ARG1_TYPE& arg1_val) {
766 const int num_args = 1; 761 const int num_args = 1;
767 unsigned char arg_types[1]; 762 unsigned char arg_types[1];
768 unsigned long long arg_values[1]; 763 unsigned long long arg_values[1];
769 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); 764 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]);
770 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( 765 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
771 phase, category_group_enabled, name, scope, id, bind_id, thread_id, 766 phase, category_group_enabled, name, scope, id, bind_id, thread_id,
772 timestamp, num_args, &arg1_name, arg_types, arg_values, NULL, flags); 767 timestamp, num_args, &arg1_name, arg_types, arg_values, NULL, flags);
773 } 768 }
774 769
770 static inline base::trace_event::TraceEventHandle AddTraceEvent(
771 char phase,
772 const unsigned char* category_group_enabled,
773 const char* name,
774 const char* scope,
775 unsigned long long id,
776 unsigned int flags,
777 unsigned long long bind_id,
778 const char* arg1_name,
779 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg1_val) {
780 int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
781 base::TimeTicks now = base::TimeTicks::Now();
782 return AddTraceEventWithThreadIdAndTimestamp(
783 phase, category_group_enabled, name, scope, id, thread_id, now, flags,
784 bind_id, arg1_name, std::move(arg1_val));
785 }
786
775 template<class ARG1_TYPE> 787 template<class ARG1_TYPE>
776 static inline base::trace_event::TraceEventHandle AddTraceEvent( 788 static inline base::trace_event::TraceEventHandle AddTraceEvent(
777 char phase, 789 char phase,
778 const unsigned char* category_group_enabled, 790 const unsigned char* category_group_enabled,
779 const char* name, 791 const char* name,
780 const char* scope, 792 const char* scope,
781 unsigned long long id, 793 unsigned long long id,
782 unsigned int flags, 794 unsigned int flags,
783 unsigned long long bind_id, 795 unsigned long long bind_id,
784 const char* arg1_name, 796 const char* arg1_name,
(...skipping 25 matching lines...) Expand all
810 const char* arg_names[2] = { arg1_name, arg2_name }; 822 const char* arg_names[2] = { arg1_name, arg2_name };
811 unsigned char arg_types[2]; 823 unsigned char arg_types[2];
812 unsigned long long arg_values[2]; 824 unsigned long long arg_values[2];
813 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]); 825 SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]);
814 SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]); 826 SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]);
815 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( 827 return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
816 phase, category_group_enabled, name, scope, id, bind_id, thread_id, 828 phase, category_group_enabled, name, scope, id, bind_id, thread_id,
817 timestamp, num_args, arg_names, arg_types, arg_values, NULL, flags); 829 timestamp, num_args, arg_names, arg_types, arg_values, NULL, flags);
818 } 830 }
819 831
832 template <class ARG2_TYPE>
833 static inline base::trace_event::TraceEventHandle AddTraceEvent(
834 char phase,
835 const unsigned char* category_group_enabled,
836 const char* name,
837 const char* scope,
838 unsigned long long id,
839 unsigned int flags,
840 unsigned long long bind_id,
841 const char* arg1_name,
842 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg1_val,
843 const char* arg2_name,
844 const ARG2_TYPE& arg2_val) {
845 int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
846 base::TimeTicks now = base::TimeTicks::Now();
847 return AddTraceEventWithThreadIdAndTimestamp(
848 phase, category_group_enabled, name, scope, id, thread_id, now, flags,
849 bind_id, arg1_name, std::move(arg1_val), arg2_name, arg2_val);
850 }
851
852 template <class ARG1_TYPE>
853 static inline base::trace_event::TraceEventHandle AddTraceEvent(
854 char phase,
855 const unsigned char* category_group_enabled,
856 const char* name,
857 const char* scope,
858 unsigned long long id,
859 unsigned int flags,
860 unsigned long long bind_id,
861 const char* arg1_name,
862 const ARG1_TYPE& arg1_val,
863 const char* arg2_name,
864 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg2_val) {
865 int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
866 base::TimeTicks now = base::TimeTicks::Now();
867 return AddTraceEventWithThreadIdAndTimestamp(
868 phase, category_group_enabled, name, scope, id, thread_id, now, flags,
869 bind_id, arg1_name, arg1_val, arg2_name, std::move(arg2_val));
870 }
871
872 static inline base::trace_event::TraceEventHandle AddTraceEvent(
873 char phase,
874 const unsigned char* category_group_enabled,
875 const char* name,
876 const char* scope,
877 unsigned long long id,
878 unsigned int flags,
879 unsigned long long bind_id,
880 const char* arg1_name,
881 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg1_val,
882 const char* arg2_name,
883 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg2_val) {
884 int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
885 base::TimeTicks now = base::TimeTicks::Now();
886 return AddTraceEventWithThreadIdAndTimestamp(
887 phase, category_group_enabled, name, scope, id, thread_id, now, flags,
888 bind_id, arg1_name, std::move(arg1_val), arg2_name, std::move(arg2_val));
889 }
890
820 template<class ARG1_TYPE, class ARG2_TYPE> 891 template<class ARG1_TYPE, class ARG2_TYPE>
821 static inline base::trace_event::TraceEventHandle AddTraceEvent( 892 static inline base::trace_event::TraceEventHandle AddTraceEvent(
822 char phase, 893 char phase,
823 const unsigned char* category_group_enabled, 894 const unsigned char* category_group_enabled,
824 const char* name, 895 const char* name,
825 const char* scope, 896 const char* scope,
826 unsigned long long id, 897 unsigned long long id,
827 unsigned int flags, 898 unsigned int flags,
828 unsigned long long bind_id, 899 unsigned long long bind_id,
829 const char* arg1_name, 900 const char* arg1_name,
830 const ARG1_TYPE& arg1_val, 901 const ARG1_TYPE& arg1_val,
831 const char* arg2_name, 902 const char* arg2_name,
832 const ARG2_TYPE& arg2_val) { 903 const ARG2_TYPE& arg2_val) {
833 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); 904 int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
834 base::TimeTicks now = base::TimeTicks::Now(); 905 base::TimeTicks now = base::TimeTicks::Now();
835 return AddTraceEventWithThreadIdAndTimestamp( 906 return AddTraceEventWithThreadIdAndTimestamp(
836 phase, category_group_enabled, name, scope, id, thread_id, now, flags, 907 phase, category_group_enabled, name, scope, id, thread_id, now, flags,
837 bind_id, arg1_name, arg1_val, arg2_name, arg2_val); 908 bind_id, arg1_name, arg1_val, arg2_name, arg2_val);
838 } 909 }
839 910
840 static inline void AddMetadataEvent( 911 static inline void AddMetadataEvent(
841 const char* event_name, 912 const char* event_name,
842 const char* arg_name, 913 const char* arg_name,
843 scoped_refptr<base::trace_event::ConvertableToTraceFormat> arg_value) { 914 scoped_ptr<base::trace_event::ConvertableToTraceFormat> arg_value) {
844 const char* arg_names[1] = {arg_name}; 915 const char* arg_names[1] = {arg_name};
845 scoped_refptr<base::trace_event::ConvertableToTraceFormat>
846 convertable_values[1] = {arg_value};
847 unsigned char arg_types[1] = {TRACE_VALUE_TYPE_CONVERTABLE}; 916 unsigned char arg_types[1] = {TRACE_VALUE_TYPE_CONVERTABLE};
848 base::trace_event::TraceLog::GetInstance()->AddMetadataEvent( 917 base::trace_event::TraceLog::GetInstance()->AddMetadataEvent(
849 event_name, 918 event_name,
850 1, // num_args 919 1, // num_args
851 arg_names, arg_types, 920 arg_names, arg_types,
852 nullptr, // arg_values 921 nullptr, // arg_values
853 convertable_values, TRACE_EVENT_FLAG_NONE); 922 &arg_value, TRACE_EVENT_FLAG_NONE);
854 } 923 }
855 924
856 template <class ARG1_TYPE> 925 template <class ARG1_TYPE>
857 static void AddMetadataEvent(const char* event_name, 926 static void AddMetadataEvent(const char* event_name,
858 const char* arg_name, 927 const char* arg_name,
859 const ARG1_TYPE& arg_val) { 928 const ARG1_TYPE& arg_val) {
860 const int num_args = 1; 929 const int num_args = 1;
861 const char* arg_names[1] = {arg_name}; 930 const char* arg_names[1] = {arg_name};
862 unsigned char arg_types[1]; 931 unsigned char arg_types[1];
863 unsigned long long arg_values[1]; 932 unsigned long long arg_values[1];
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 const char* name_; 1053 const char* name_;
985 IDType id_; 1054 IDType id_;
986 1055
987 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject); 1056 DISALLOW_COPY_AND_ASSIGN(TraceScopedTrackableObject);
988 }; 1057 };
989 1058
990 } // namespace trace_event 1059 } // namespace trace_event
991 } // namespace base 1060 } // namespace base
992 1061
993 #endif // BASE_TRACE_EVENT_TRACE_EVENT_H_ 1062 #endif // BASE_TRACE_EVENT_TRACE_EVENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698