| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |   2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 
|   3  * |   3  * | 
|   4  *  Use of this source code is governed by a BSD-style license |   4  *  Use of this source code is governed by a BSD-style license | 
|   5  *  that can be found in the LICENSE file in the root of the source |   5  *  that can be found in the LICENSE file in the root of the source | 
|   6  *  tree. An additional intellectual property rights grant can be found |   6  *  tree. An additional intellectual property rights grant can be found | 
|   7  *  in the file PATENTS.  All contributing project authors may |   7  *  in the file PATENTS.  All contributing project authors may | 
|   8  *  be found in the AUTHORS file in the root of the source tree. |   8  *  be found in the AUTHORS file in the root of the source tree. | 
|   9  */ |   9  */ | 
|  10  |  10  | 
|  11 // This file defines the interface for event tracing in WebRTC. |  11 // This file defines the interface for event tracing in WebRTC. | 
|  12 // |  12 // | 
|  13 // Event log handlers are set through SetupEventTracer(). User of this API will |  13 // Event log handlers are set through SetupEventTracer(). User of this API will | 
|  14 // provide two function pointers to handle event tracing calls. |  14 // provide two function pointers to handle event tracing calls. | 
|  15 // |  15 // | 
|  16 // * GetCategoryEnabledPtr |  16 // * GetCategoryEnabledPtr | 
|  17 //   Event tracing system calls this function to determine if a particular |  17 //   Event tracing system calls this function to determine if a particular | 
|  18 //   event category is enabled. |  18 //   event category is enabled. | 
|  19 // |  19 // | 
|  20 // * AddTraceEventPtr |  20 // * AddTraceEventPtr | 
|  21 //   Adds a tracing event. It is the user's responsibility to log the data |  21 //   Adds a tracing event. It is the user's responsibility to log the data | 
|  22 //   provided. |  22 //   provided. | 
|  23 // |  23 // | 
|  24 // Parameters for the above two functions are described in trace_event.h. |  24 // Parameters for the above two functions are described in trace_event.h. | 
|  25  |  25  | 
|  26 #ifndef WEBRTC_BASE_EVENT_TRACER_H_ |  26 #ifndef WEBRTC_BASE_EVENT_TRACER_H_ | 
|  27 #define WEBRTC_BASE_EVENT_TRACER_H_ |  27 #define WEBRTC_BASE_EVENT_TRACER_H_ | 
|  28  |  28  | 
|  29 #include <stdio.h> |  | 
|  30  |  29  | 
|  31 namespace webrtc { |  30 // This header is deprecated and is just left here temporarily during | 
|  32  |  31 // refactoring. See https://bugs.webrtc.org/7634 for more details. | 
|  33 typedef const unsigned char* (*GetCategoryEnabledPtr)(const char* name); |  32 #include "webrtc/rtc_base/event_tracer.h" | 
|  34 typedef void (*AddTraceEventPtr)(char phase, |  | 
|  35                                  const unsigned char* category_enabled, |  | 
|  36                                  const char* name, |  | 
|  37                                  unsigned long long id, |  | 
|  38                                  int num_args, |  | 
|  39                                  const char** arg_names, |  | 
|  40                                  const unsigned char* arg_types, |  | 
|  41                                  const unsigned long long* arg_values, |  | 
|  42                                  unsigned char flags); |  | 
|  43  |  | 
|  44 // User of WebRTC can call this method to setup event tracing. |  | 
|  45 // |  | 
|  46 // This method must be called before any WebRTC methods. Functions |  | 
|  47 // provided should be thread-safe. |  | 
|  48 void SetupEventTracer( |  | 
|  49     GetCategoryEnabledPtr get_category_enabled_ptr, |  | 
|  50     AddTraceEventPtr add_trace_event_ptr); |  | 
|  51  |  | 
|  52 // This class defines interface for the event tracing system to call |  | 
|  53 // internally. Do not call these methods directly. |  | 
|  54 class EventTracer { |  | 
|  55  public: |  | 
|  56   static const unsigned char* GetCategoryEnabled( |  | 
|  57       const char* name); |  | 
|  58  |  | 
|  59   static void AddTraceEvent( |  | 
|  60       char phase, |  | 
|  61       const unsigned char* category_enabled, |  | 
|  62       const char* name, |  | 
|  63       unsigned long long id, |  | 
|  64       int num_args, |  | 
|  65       const char** arg_names, |  | 
|  66       const unsigned char* arg_types, |  | 
|  67       const unsigned long long* arg_values, |  | 
|  68       unsigned char flags); |  | 
|  69 }; |  | 
|  70  |  | 
|  71 }  // namespace webrtc |  | 
|  72  |  | 
|  73 namespace rtc { |  | 
|  74 namespace tracing { |  | 
|  75 // Set up internal event tracer. |  | 
|  76 void SetupInternalTracer(); |  | 
|  77 bool StartInternalCapture(const char* filename); |  | 
|  78 void StartInternalCaptureToFile(FILE* file); |  | 
|  79 void StopInternalCapture(); |  | 
|  80 // Make sure we run this, this will tear down the internal tracing. |  | 
|  81 void ShutdownInternalTracer(); |  | 
|  82 }  // namespace tracing |  | 
|  83 }  // namespace rtc |  | 
|  84  |  33  | 
|  85 #endif  // WEBRTC_BASE_EVENT_TRACER_H_ |  34 #endif  // WEBRTC_BASE_EVENT_TRACER_H_ | 
| OLD | NEW |