Pepper_31_C_interfaces
ppb_trace_event_dev.h
Go to the documentation of this file.
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
3  * found in the LICENSE file.
4  */
5 
6 /* From dev/ppb_trace_event_dev.idl modified Tue Jun 25 16:12:08 2013. */
7 
8 #ifndef PPAPI_C_DEV_PPB_TRACE_EVENT_DEV_H_
9 #define PPAPI_C_DEV_PPB_TRACE_EVENT_DEV_H_
10 
11 #include "ppapi/c/pp_macros.h"
12 #include "ppapi/c/pp_stdint.h"
13 
14 #define PPB_TRACE_EVENT_DEV_INTERFACE_0_1 "PPB_Trace_Event(Dev);0.1"
15 #define PPB_TRACE_EVENT_DEV_INTERFACE_0_2 "PPB_Trace_Event(Dev);0.2"
16 #define PPB_TRACE_EVENT_DEV_INTERFACE PPB_TRACE_EVENT_DEV_INTERFACE_0_2
17 
18 /**
19  * @file
20  * This file defines the <code>PPB_Trace_Event</code> interface. It is meant
21  * to be used in plugins as the API that trace macros from trace_event.h use.
22  */
23 
24 
25 /**
26  * @addtogroup Typedefs
27  * @{
28  */
29 /**
30  * A trace event timestamp.
31  */
32 typedef int64_t PP_TraceEventTime;
33 /**
34  * @}
35  */
36 
37 /**
38  * @addtogroup Interfaces
39  * @{
40  */
42  /**
43  * Gets a pointer to a character for identifying a category name in the
44  * tracing system as well as for being able to early exit in client-side
45  * tracing code.
46  *
47  * NB: This mem_t return value should technically be const, but return values
48  * for Pepper IDL of mem_t type are not const. The same is true for the arg
49  * |category_enabled| for AddTraceEvent.
50  */
51  void* (*GetCategoryEnabled)(const char* category_name);
52  /**
53  * Adds a trace event to the platform tracing system. This function call is
54  * usually the result of a TRACE_* macro from trace_event.h when tracing and
55  * the category of the particular trace are enabled. It is not advisable to
56  * call this function on its own; it is really only meant to be used by the
57  * trace macros.
58  */
59  void (*AddTraceEvent)(int8_t phase,
60  const void* category_enabled,
61  const char* name,
62  uint64_t id,
63  uint32_t num_args,
64  const char* arg_names[],
65  const uint8_t arg_types[],
66  const uint64_t arg_values[],
67  uint8_t flags);
68  /**
69  * Version of the above interface that allows specifying a custom thread id
70  * and timestamp. This is useful for when tracing data cannot be registered
71  * in real time. For example, this could be used by storing timestamps
72  * internally and then registering the events retroactively.
73  */
75  const void* category_enabled,
76  const char* name,
77  uint64_t id,
78  int32_t thread_id,
79  PP_TraceEventTime timestamp,
80  uint32_t num_args,
81  const char* arg_names[],
82  const uint8_t arg_types[],
83  const uint64_t arg_values[],
84  uint8_t flags);
85  /**
86  * Get the current clock value. Since this uses the same function as the trace
87  * events use internally, it can be used to create events with explicit time
88  * stamps.
89  */
91  /**
92  * Sets the thread name of the calling thread in the tracing system so it will
93  * show up properly in chrome://tracing.
94  */
95  void (*SetThreadName)(const char* thread_name);
96 };
97 
99 
101  void* (*GetCategoryEnabled)(const char* category_name);
102  void (*AddTraceEvent)(int8_t phase,
103  const void* category_enabled,
104  const char* name,
105  uint64_t id,
106  uint32_t num_args,
107  const char* arg_names[],
108  const uint8_t arg_types[],
109  const uint64_t arg_values[],
110  uint8_t flags);
111  void (*SetThreadName)(const char* thread_name);
112 };
113 /**
114  * @}
115  */
116 
117 #endif /* PPAPI_C_DEV_PPB_TRACE_EVENT_DEV_H_ */
118 
PP_TraceEventTime(* Now)(void)
int64_t PP_TraceEventTime
void(* AddTraceEventWithThreadIdAndTimestamp)(int8_t phase, const void *category_enabled, const char *name, uint64_t id, int32_t thread_id, PP_TraceEventTime timestamp, uint32_t num_args, const char *arg_names[], const uint8_t arg_types[], const uint64_t arg_values[], uint8_t flags)
void(* AddTraceEvent)(int8_t phase, const void *category_enabled, const char *name, uint64_t id, uint32_t num_args, const char *arg_names[], const uint8_t arg_types[], const uint64_t arg_values[], uint8_t flags)
void(* SetThreadName)(const char *thread_name)
void(* AddTraceEvent)(int8_t phase, const void *category_enabled, const char *name, uint64_t id, uint32_t num_args, const char *arg_names[], const uint8_t arg_types[], const uint64_t arg_values[], uint8_t flags)
void(* SetThreadName)(const char *thread_name)