| Index: base/trace_event/trace_event.h
|
| diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h
|
| index 30ec8d60c2c23a7017c747421d8506d70eb0309c..2321d7ad62bd66c38653ab49b5d28e664b8a861d 100644
|
| --- a/base/trace_event/trace_event.h
|
| +++ b/base/trace_event/trace_event.h
|
| @@ -110,7 +110,7 @@
|
| // const char** arg_names,
|
| // const unsigned char* arg_types,
|
| // const unsigned long long* arg_values,
|
| -// const scoped_refptr<ConvertableToTraceFormat>*
|
| +// scoped_ptr<ConvertableToTraceFormat>*
|
| // convertable_values,
|
| // unsigned int flags)
|
| #define TRACE_EVENT_API_ADD_TRACE_EVENT \
|
| @@ -129,7 +129,7 @@
|
| // const char** arg_names,
|
| // const unsigned char* arg_types,
|
| // const unsigned long long* arg_values,
|
| -// const scoped_refptr<ConvertableToTraceFormat>*
|
| +// scoped_ptr<ConvertableToTraceFormat>*
|
| // convertable_values,
|
| // unsigned int flags)
|
| #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_BIND_ID \
|
| @@ -149,7 +149,7 @@
|
| // const char** arg_names,
|
| // const unsigned char* arg_types,
|
| // const unsigned long long* arg_values,
|
| -// const scoped_refptr<ConvertableToTraceFormat>*
|
| +// scoped_ptr<ConvertableToTraceFormat>*
|
| // convertable_values,
|
| // unsigned int flags)
|
| #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_PROCESS_ID \
|
| @@ -169,7 +169,7 @@
|
| // const char** arg_names,
|
| // const unsigned char* arg_types,
|
| // const unsigned long long* arg_values,
|
| -// const scoped_refptr<ConvertableToTraceFormat>*
|
| +// scoped_ptr<ConvertableToTraceFormat>*
|
| // convertable_values,
|
| // unsigned int flags)
|
| #define TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP \
|
| @@ -190,7 +190,7 @@
|
| // const unsigned char* category_group_enabled,
|
| // const char* event_name,
|
| // const char* arg_name,
|
| -// scoped_refptr<ConvertableToTraceFormat> arg_value)
|
| +// scoped_ptr<ConvertableToTraceFormat> arg_value)
|
| #define TRACE_EVENT_API_ADD_METADATA_EVENT \
|
| trace_event_internal::AddMetadataEvent
|
|
|
| @@ -611,6 +611,7 @@ static inline void SetTraceValue(const base::ThreadTicks arg,
|
| // pointers to the internal c_str and pass through to the tracing API,
|
| // the arg_values must live throughout these procedures.
|
|
|
| +template <class ARG1_CONVERTABLE_TYPE>
|
| static inline base::trace_event::TraceEventHandle
|
| AddTraceEventWithThreadIdAndTimestamp(
|
| char phase,
|
| @@ -623,16 +624,18 @@ AddTraceEventWithThreadIdAndTimestamp(
|
| unsigned int flags,
|
| unsigned long long bind_id,
|
| const char* arg1_name,
|
| - const scoped_refptr<base::trace_event::ConvertableToTraceFormat>&
|
| - arg1_val) {
|
| + scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val) {
|
| const int num_args = 1;
|
| unsigned char arg_types[1] = { TRACE_VALUE_TYPE_CONVERTABLE };
|
| + scoped_ptr<base::trace_event::ConvertableToTraceFormat>
|
| + convertable_values[1] = {std::move(arg1_val)};
|
| return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
|
| phase, category_group_enabled, name, scope, id, bind_id, thread_id,
|
| - timestamp, num_args, &arg1_name, arg_types, NULL, &arg1_val, flags);
|
| + timestamp, num_args, &arg1_name, arg_types, NULL, convertable_values,
|
| + flags);
|
| }
|
|
|
| -template<class ARG1_TYPE>
|
| +template <class ARG1_TYPE, class ARG2_CONVERTABLE_TYPE>
|
| static inline base::trace_event::TraceEventHandle
|
| AddTraceEventWithThreadIdAndTimestamp(
|
| char phase,
|
| @@ -647,8 +650,7 @@ AddTraceEventWithThreadIdAndTimestamp(
|
| const char* arg1_name,
|
| const ARG1_TYPE& arg1_val,
|
| const char* arg2_name,
|
| - const scoped_refptr<base::trace_event::ConvertableToTraceFormat>&
|
| - arg2_val) {
|
| + scoped_ptr<ARG2_CONVERTABLE_TYPE> arg2_val) {
|
| const int num_args = 2;
|
| const char* arg_names[2] = { arg1_name, arg2_name };
|
|
|
| @@ -656,18 +658,15 @@ AddTraceEventWithThreadIdAndTimestamp(
|
| unsigned long long arg_values[2];
|
| SetTraceValue(arg1_val, &arg_types[0], &arg_values[0]);
|
| arg_types[1] = TRACE_VALUE_TYPE_CONVERTABLE;
|
| -
|
| - scoped_refptr<base::trace_event::ConvertableToTraceFormat>
|
| - convertable_values[2];
|
| - convertable_values[1] = arg2_val;
|
| -
|
| + scoped_ptr<base::trace_event::ConvertableToTraceFormat>
|
| + convertable_values[2] = {nullptr, std::move(arg2_val)};
|
| return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
|
| phase, category_group_enabled, name, scope, id, bind_id, thread_id,
|
| timestamp, num_args, arg_names, arg_types, arg_values, convertable_values,
|
| flags);
|
| }
|
|
|
| -template<class ARG2_TYPE>
|
| +template <class ARG1_CONVERTABLE_TYPE, class ARG2_TYPE>
|
| static inline base::trace_event::TraceEventHandle
|
| AddTraceEventWithThreadIdAndTimestamp(
|
| char phase,
|
| @@ -680,7 +679,7 @@ AddTraceEventWithThreadIdAndTimestamp(
|
| unsigned int flags,
|
| unsigned long long bind_id,
|
| const char* arg1_name,
|
| - const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& arg1_val,
|
| + scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val,
|
| const char* arg2_name,
|
| const ARG2_TYPE& arg2_val) {
|
| const int num_args = 2;
|
| @@ -691,17 +690,15 @@ AddTraceEventWithThreadIdAndTimestamp(
|
| arg_types[0] = TRACE_VALUE_TYPE_CONVERTABLE;
|
| arg_values[0] = 0;
|
| SetTraceValue(arg2_val, &arg_types[1], &arg_values[1]);
|
| -
|
| - scoped_refptr<base::trace_event::ConvertableToTraceFormat>
|
| - convertable_values[2];
|
| - convertable_values[0] = arg1_val;
|
| -
|
| + scoped_ptr<base::trace_event::ConvertableToTraceFormat>
|
| + convertable_values[2] = {std::move(arg1_val), nullptr};
|
| return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
|
| phase, category_group_enabled, name, scope, id, bind_id, thread_id,
|
| timestamp, num_args, arg_names, arg_types, arg_values, convertable_values,
|
| flags);
|
| }
|
|
|
| +template <class ARG1_CONVERTABLE_TYPE, class ARG2_CONVERTABLE_TYPE>
|
| static inline base::trace_event::TraceEventHandle
|
| AddTraceEventWithThreadIdAndTimestamp(
|
| char phase,
|
| @@ -714,17 +711,15 @@ AddTraceEventWithThreadIdAndTimestamp(
|
| unsigned int flags,
|
| unsigned long long bind_id,
|
| const char* arg1_name,
|
| - const scoped_refptr<base::trace_event::ConvertableToTraceFormat>& arg1_val,
|
| + scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val,
|
| const char* arg2_name,
|
| - const scoped_refptr<base::trace_event::ConvertableToTraceFormat>&
|
| - arg2_val) {
|
| + scoped_ptr<ARG2_CONVERTABLE_TYPE> arg2_val) {
|
| const int num_args = 2;
|
| const char* arg_names[2] = { arg1_name, arg2_name };
|
| unsigned char arg_types[2] =
|
| { TRACE_VALUE_TYPE_CONVERTABLE, TRACE_VALUE_TYPE_CONVERTABLE };
|
| - scoped_refptr<base::trace_event::ConvertableToTraceFormat>
|
| - convertable_values[2] = {arg1_val, arg2_val};
|
| -
|
| + scoped_ptr<base::trace_event::ConvertableToTraceFormat>
|
| + convertable_values[2] = {std::move(arg1_val), std::move(arg2_val)};
|
| return TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP(
|
| phase, category_group_enabled, name, scope, id, bind_id, thread_id,
|
| timestamp, num_args, arg_names, arg_types, NULL, convertable_values,
|
| @@ -803,6 +798,24 @@ static inline base::trace_event::TraceEventHandle AddTraceEvent(
|
| bind_id, arg1_name, arg1_val);
|
| }
|
|
|
| +template <class ARG1_CONVERTABLE_TYPE>
|
| +static inline base::trace_event::TraceEventHandle AddTraceEvent(
|
| + char phase,
|
| + const unsigned char* category_group_enabled,
|
| + const char* name,
|
| + const char* scope,
|
| + unsigned long long id,
|
| + unsigned int flags,
|
| + unsigned long long bind_id,
|
| + const char* arg1_name,
|
| + scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val) {
|
| + int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
|
| + base::TimeTicks now = base::TimeTicks::Now();
|
| + return AddTraceEventWithThreadIdAndTimestamp(
|
| + phase, category_group_enabled, name, scope, id, thread_id, now, flags,
|
| + bind_id, arg1_name, std::move(arg1_val));
|
| +}
|
| +
|
| template<class ARG1_TYPE, class ARG2_TYPE>
|
| static inline base::trace_event::TraceEventHandle
|
| AddTraceEventWithThreadIdAndTimestamp(
|
| @@ -830,6 +843,66 @@ AddTraceEventWithThreadIdAndTimestamp(
|
| timestamp, num_args, arg_names, arg_types, arg_values, NULL, flags);
|
| }
|
|
|
| +template <class ARG1_CONVERTABLE_TYPE, class ARG2_TYPE>
|
| +static inline base::trace_event::TraceEventHandle AddTraceEvent(
|
| + char phase,
|
| + const unsigned char* category_group_enabled,
|
| + const char* name,
|
| + const char* scope,
|
| + unsigned long long id,
|
| + unsigned int flags,
|
| + unsigned long long bind_id,
|
| + const char* arg1_name,
|
| + scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val,
|
| + const char* arg2_name,
|
| + const ARG2_TYPE& arg2_val) {
|
| + int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
|
| + base::TimeTicks now = base::TimeTicks::Now();
|
| + return AddTraceEventWithThreadIdAndTimestamp(
|
| + phase, category_group_enabled, name, scope, id, thread_id, now, flags,
|
| + bind_id, arg1_name, std::move(arg1_val), arg2_name, arg2_val);
|
| +}
|
| +
|
| +template <class ARG1_TYPE, class ARG2_CONVERTABLE_TYPE>
|
| +static inline base::trace_event::TraceEventHandle AddTraceEvent(
|
| + char phase,
|
| + const unsigned char* category_group_enabled,
|
| + const char* name,
|
| + const char* scope,
|
| + unsigned long long id,
|
| + unsigned int flags,
|
| + unsigned long long bind_id,
|
| + const char* arg1_name,
|
| + const ARG1_TYPE& arg1_val,
|
| + const char* arg2_name,
|
| + scoped_ptr<ARG2_CONVERTABLE_TYPE> arg2_val) {
|
| + int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
|
| + base::TimeTicks now = base::TimeTicks::Now();
|
| + return AddTraceEventWithThreadIdAndTimestamp(
|
| + phase, category_group_enabled, name, scope, id, thread_id, now, flags,
|
| + bind_id, arg1_name, arg1_val, arg2_name, std::move(arg2_val));
|
| +}
|
| +
|
| +template <class ARG1_CONVERTABLE_TYPE, class ARG2_CONVERTABLE_TYPE>
|
| +static inline base::trace_event::TraceEventHandle AddTraceEvent(
|
| + char phase,
|
| + const unsigned char* category_group_enabled,
|
| + const char* name,
|
| + const char* scope,
|
| + unsigned long long id,
|
| + unsigned int flags,
|
| + unsigned long long bind_id,
|
| + const char* arg1_name,
|
| + scoped_ptr<ARG1_CONVERTABLE_TYPE> arg1_val,
|
| + const char* arg2_name,
|
| + scoped_ptr<ARG2_CONVERTABLE_TYPE> arg2_val) {
|
| + int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
|
| + base::TimeTicks now = base::TimeTicks::Now();
|
| + return AddTraceEventWithThreadIdAndTimestamp(
|
| + phase, category_group_enabled, name, scope, id, thread_id, now, flags,
|
| + bind_id, arg1_name, std::move(arg1_val), arg2_name, std::move(arg2_val));
|
| +}
|
| +
|
| template<class ARG1_TYPE, class ARG2_TYPE>
|
| static inline base::trace_event::TraceEventHandle AddTraceEvent(
|
| char phase,
|
| @@ -850,15 +923,16 @@ static inline base::trace_event::TraceEventHandle AddTraceEvent(
|
| bind_id, arg1_name, arg1_val, arg2_name, arg2_val);
|
| }
|
|
|
| +template <class ARG1_CONVERTABLE_TYPE>
|
| static inline void AddMetadataEvent(
|
| const unsigned char* category_group_enabled,
|
| const char* event_name,
|
| const char* arg_name,
|
| - scoped_refptr<base::trace_event::ConvertableToTraceFormat> arg_value) {
|
| + scoped_ptr<ARG1_CONVERTABLE_TYPE> arg_value) {
|
| const char* arg_names[1] = {arg_name};
|
| - scoped_refptr<base::trace_event::ConvertableToTraceFormat>
|
| - convertable_values[1] = {arg_value};
|
| unsigned char arg_types[1] = {TRACE_VALUE_TYPE_CONVERTABLE};
|
| + scoped_ptr<base::trace_event::ConvertableToTraceFormat>
|
| + convertable_values[1] = {std::move(arg_value)};
|
| base::trace_event::TraceLog::GetInstance()->AddMetadataEvent(
|
| category_group_enabled, event_name,
|
| 1, // num_args
|
|
|