| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 #ifndef TraceEvent_h | 30 #ifndef TraceEvent_h |
| 31 #define TraceEvent_h | 31 #define TraceEvent_h |
| 32 | 32 |
| 33 #include "platform/EventTracer.h" | 33 #include "platform/EventTracer.h" |
| 34 #include "platform/TraceEventCommon.h" | 34 #include "platform/TraceEventCommon.h" |
| 35 | 35 |
| 36 #include "platform/TracedValue.h" | 36 #include "platform/TracedValue.h" |
| 37 #include "wtf/Allocator.h" | 37 #include "wtf/Allocator.h" |
| 38 #include "wtf/DynamicAnnotations.h" | 38 #include "wtf/DynamicAnnotations.h" |
| 39 #include "wtf/Noncopyable.h" | 39 #include "wtf/Noncopyable.h" |
| 40 #include "wtf/PassOwnPtr.h" | |
| 41 #include "wtf/text/CString.h" | 40 #include "wtf/text/CString.h" |
| 41 #include <memory> |
| 42 | 42 |
| 43 //////////////////////////////////////////////////////////////////////////////// | 43 //////////////////////////////////////////////////////////////////////////////// |
| 44 // Implementation specific tracing API definitions. | 44 // Implementation specific tracing API definitions. |
| 45 | 45 |
| 46 // By default, const char* argument values are assumed to have long-lived scope | 46 // By default, const char* argument values are assumed to have long-lived scope |
| 47 // and will not be copied. Use this macro to force a const char* to be copied. | 47 // and will not be copied. Use this macro to force a const char* to be copied. |
| 48 #define TRACE_STR_COPY(str) \ | 48 #define TRACE_STR_COPY(str) \ |
| 49 blink::TraceEvent::TraceStringWithCopy(str) | 49 blink::TraceEvent::TraceStringWithCopy(str) |
| 50 | 50 |
| 51 // By default, uint64 ID argument values are not mangled with the Process ID in | 51 // By default, uint64 ID argument values are not mangled with the Process ID in |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 // Add a trace event to the platform tracing system. | 109 // Add a trace event to the platform tracing system. |
| 110 // blink::TraceEvent::TraceEventHandle TRACE_EVENT_API_ADD_TRACE_EVENT( | 110 // blink::TraceEvent::TraceEventHandle TRACE_EVENT_API_ADD_TRACE_EVENT( |
| 111 // const char* name, | 111 // const char* name, |
| 112 // const char* scope, | 112 // const char* scope, |
| 113 // unsigned long long id, | 113 // unsigned long long id, |
| 114 // double timestamp, | 114 // double timestamp, |
| 115 // int num_args, | 115 // int num_args, |
| 116 // const char** arg_names, | 116 // const char** arg_names, |
| 117 // const unsigned char* arg_types, | 117 // const unsigned char* arg_types, |
| 118 // const unsigned long long* arg_values, | 118 // const unsigned long long* arg_values, |
| 119 // PassOwnPtr<TracedValue> tracedValues[], | 119 // std::unique_ptr<TracedValue> tracedValues[], |
| 120 // unsigned char flags) | 120 // unsigned char flags) |
| 121 #define TRACE_EVENT_API_ADD_TRACE_EVENT \ | 121 #define TRACE_EVENT_API_ADD_TRACE_EVENT \ |
| 122 blink::EventTracer::addTraceEvent | 122 blink::EventTracer::addTraceEvent |
| 123 | 123 |
| 124 // Set the duration field of a COMPLETE trace event. | 124 // Set the duration field of a COMPLETE trace event. |
| 125 // void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( | 125 // void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( |
| 126 // blink::TraceEvent::TraceEventHandle handle) | 126 // blink::TraceEvent::TraceEventHandle handle) |
| 127 #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ | 127 #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ |
| 128 blink::EventTracer::updateTraceEventDuration | 128 blink::EventTracer::updateTraceEventDuration |
| 129 | 129 |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 typeValue.m_string = arg.data(); | 420 typeValue.m_string = arg.data(); |
| 421 *type = TRACE_VALUE_TYPE_COPY_STRING; | 421 *type = TRACE_VALUE_TYPE_COPY_STRING; |
| 422 *value = typeValue.m_uint; | 422 *value = typeValue.m_uint; |
| 423 } | 423 } |
| 424 | 424 |
| 425 static inline void setTraceValue(TracedValue*, unsigned char* type, unsigned lon
g long*) | 425 static inline void setTraceValue(TracedValue*, unsigned char* type, unsigned lon
g long*) |
| 426 { | 426 { |
| 427 *type = TRACE_VALUE_TYPE_CONVERTABLE; | 427 *type = TRACE_VALUE_TYPE_CONVERTABLE; |
| 428 } | 428 } |
| 429 | 429 |
| 430 template<typename T> static inline void setTraceValue(const PassOwnPtr<T>& ptr,
unsigned char* type, unsigned long long* value) | 430 template<typename T> static inline void setTraceValue(const std::unique_ptr<T>&
ptr, unsigned char* type, unsigned long long* value) |
| 431 { | 431 { |
| 432 setTraceValue(ptr.get(), type, value); | 432 setTraceValue(ptr.get(), type, value); |
| 433 } | 433 } |
| 434 | 434 |
| 435 template<typename T> struct TracedValueTraits { | 435 template<typename T> struct TracedValueTraits { |
| 436 static const bool isTracedValue = false; | 436 static const bool isTracedValue = false; |
| 437 static PassOwnPtr<TracedValue> moveFromIfTracedValue(const T&) | 437 static std::unique_ptr<TracedValue> moveFromIfTracedValue(const T&) |
| 438 { | 438 { |
| 439 return nullptr; | 439 return nullptr; |
| 440 } | 440 } |
| 441 }; | 441 }; |
| 442 | 442 |
| 443 template<typename T> struct TracedValueTraits<PassOwnPtr<T>> { | 443 template<typename T> struct TracedValueTraits<std::unique_ptr<T>> { |
| 444 static const bool isTracedValue = std::is_convertible<T*, TracedValue*>::val
ue; | 444 static const bool isTracedValue = std::is_convertible<T*, TracedValue*>::val
ue; |
| 445 static PassOwnPtr<TracedValue> moveFromIfTracedValue(PassOwnPtr<T>&& tracedV
alue) | 445 static std::unique_ptr<TracedValue> moveFromIfTracedValue(std::unique_ptr<T>
&& tracedValue) |
| 446 { | 446 { |
| 447 return std::move(tracedValue); | 447 return std::move(tracedValue); |
| 448 } | 448 } |
| 449 }; | 449 }; |
| 450 | 450 |
| 451 template<typename T> bool isTracedValue(const T&) | 451 template<typename T> bool isTracedValue(const T&) |
| 452 { | 452 { |
| 453 return TracedValueTraits<T>::isTracedValue; | 453 return TracedValueTraits<T>::isTracedValue; |
| 454 } | 454 } |
| 455 | 455 |
| 456 template<typename T> PassOwnPtr<TracedValue> moveFromIfTracedValue(T&& value) | 456 template<typename T> std::unique_ptr<TracedValue> moveFromIfTracedValue(T&& valu
e) |
| 457 { | 457 { |
| 458 return TracedValueTraits<T>::moveFromIfTracedValue(std::forward<T>(value)); | 458 return TracedValueTraits<T>::moveFromIfTracedValue(std::forward<T>(value)); |
| 459 } | 459 } |
| 460 | 460 |
| 461 // These addTraceEvent template functions are defined here instead of in the | 461 // These addTraceEvent template functions are defined here instead of in the |
| 462 // macro, because the arg values could be temporary string objects. In order to | 462 // macro, because the arg values could be temporary string objects. In order to |
| 463 // store pointers to the internal c_str and pass through to the tracing API, the | 463 // store pointers to the internal c_str and pass through to the tracing API, the |
| 464 // arg values must live throughout these procedures. | 464 // arg values must live throughout these procedures. |
| 465 | 465 |
| 466 static inline TraceEventHandle addTraceEvent( | 466 static inline TraceEventHandle addTraceEvent( |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 const char* m_categoryGroup; | 682 const char* m_categoryGroup; |
| 683 const char* m_name; | 683 const char* m_name; |
| 684 IDType m_id; | 684 IDType m_id; |
| 685 }; | 685 }; |
| 686 | 686 |
| 687 } // namespace TraceEvent | 687 } // namespace TraceEvent |
| 688 | 688 |
| 689 } // namespace blink | 689 } // namespace blink |
| 690 | 690 |
| 691 #endif | 691 #endif |
| OLD | NEW |