• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3  *
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
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #include "webrtc/system_wrappers/interface/event_tracer.h"
12 
13 namespace webrtc {
14 
15 namespace {
16 
17 GetCategoryEnabledPtr g_get_category_enabled_ptr = 0;
18 AddTraceEventPtr g_add_trace_event_ptr = 0;
19 
20 }  // namespace
21 
SetupEventTracer(GetCategoryEnabledPtr get_category_enabled_ptr,AddTraceEventPtr add_trace_event_ptr)22 void SetupEventTracer(GetCategoryEnabledPtr get_category_enabled_ptr,
23                       AddTraceEventPtr add_trace_event_ptr) {
24   g_get_category_enabled_ptr = get_category_enabled_ptr;
25   g_add_trace_event_ptr = add_trace_event_ptr;
26 }
27 
28 // static
GetCategoryEnabled(const char * name)29 const unsigned char* EventTracer::GetCategoryEnabled(const char* name) {
30   if (g_get_category_enabled_ptr)
31     return g_get_category_enabled_ptr(name);
32 
33   // A string with null terminator means category is disabled.
34   return reinterpret_cast<const unsigned char*>("\0");
35 }
36 
37 // static
AddTraceEvent(char phase,const unsigned char * category_enabled,const char * name,unsigned long long id,int num_args,const char ** arg_names,const unsigned char * arg_types,const unsigned long long * arg_values,unsigned char flags)38 void EventTracer::AddTraceEvent(char phase,
39                                 const unsigned char* category_enabled,
40                                 const char* name,
41                                 unsigned long long id,
42                                 int num_args,
43                                 const char** arg_names,
44                                 const unsigned char* arg_types,
45                                 const unsigned long long* arg_values,
46                                 unsigned char flags) {
47   if (g_add_trace_event_ptr) {
48     g_add_trace_event_ptr(phase,
49                           category_enabled,
50                           name,
51                           id,
52                           num_args,
53                           arg_names,
54                           arg_types,
55                           arg_values,
56                           flags);
57   }
58 }
59 
60 }  // namespace webrtc
61