trace_event.cc 6.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "flutter/fml/trace_event.h"

#include "dart/runtime/include/dart_tools_api.h"

namespace fml {
namespace tracing {

void TraceEvent0(TraceArg category_group, TraceArg name) {
  Dart_TimelineEvent(name,                       // label
                     Dart_TimelineGetMicros(),   // timestamp0
                     0,                          // timestamp1_or_async_id
                     Dart_Timeline_Event_Begin,  // event type
                     0,                          // argument_count
                     nullptr,                    // argument_names
                     nullptr                     // argument_values
                     );
}

void TraceEvent1(TraceArg category_group,
                 TraceArg name,
                 TraceArg arg1_name,
                 TraceArg arg1_val) {
  const char* arg_names[] = {arg1_name};
  const char* arg_values[] = {arg1_val};
  Dart_TimelineEvent(name,                       // label
                     Dart_TimelineGetMicros(),   // timestamp0
                     0,                          // timestamp1_or_async_id
                     Dart_Timeline_Event_Begin,  // event type
                     1,                          // argument_count
                     arg_names,                  // argument_names
                     arg_values                  // argument_values
                     );
}

void TraceEvent2(TraceArg category_group,
                 TraceArg name,
                 TraceArg arg1_name,
                 TraceArg arg1_val,
                 TraceArg arg2_name,
                 TraceArg arg2_val) {
  const char* arg_names[] = {arg1_name, arg2_name};
  const char* arg_values[] = {arg1_val, arg2_val};
  Dart_TimelineEvent(name,                       // label
                     Dart_TimelineGetMicros(),   // timestamp0
                     0,                          // timestamp1_or_async_id
                     Dart_Timeline_Event_Begin,  // event type
                     2,                          // argument_count
                     arg_names,                  // argument_names
                     arg_values                  // argument_values
                     );
}

void TraceEventEnd(TraceArg name) {
  Dart_TimelineEvent(name,                      // label
                     Dart_TimelineGetMicros(),  // timestamp0
                     0,                         // timestamp1_or_async_id
                     Dart_Timeline_Event_End,   // event type
                     0,                         // argument_count
                     nullptr,                   // argument_names
                     nullptr                    // argument_values
                     );
}

void TraceEventAsyncBegin0(TraceArg category_group,
                           TraceArg name,
                           TraceIDArg id) {
  Dart_TimelineEvent(name,                             // label
                     Dart_TimelineGetMicros(),         // timestamp0
                     id,                               // timestamp1_or_async_id
                     Dart_Timeline_Event_Async_Begin,  // event type
                     0,                                // argument_count
                     nullptr,                          // argument_names
                     nullptr                           // argument_values
                     );
}

void TraceEventAsyncEnd0(TraceArg category_group,
                         TraceArg name,
                         TraceIDArg id) {
  Dart_TimelineEvent(name,                           // label
                     Dart_TimelineGetMicros(),       // timestamp0
                     id,                             // timestamp1_or_async_id
                     Dart_Timeline_Event_Async_End,  // event type
                     0,                              // argument_count
                     nullptr,                        // argument_names
                     nullptr                         // argument_values
                     );
}

void TraceEventAsyncBegin1(TraceArg category_group,
                           TraceArg name,
                           TraceIDArg id,
                           TraceArg arg1_name,
                           TraceArg arg1_val) {
  const char* arg_names[] = {arg1_name};
  const char* arg_values[] = {arg1_val};
  Dart_TimelineEvent(name,                             // label
                     Dart_TimelineGetMicros(),         // timestamp0
                     id,                               // timestamp1_or_async_id
                     Dart_Timeline_Event_Async_Begin,  // event type
                     1,                                // argument_count
                     arg_names,                        // argument_names
                     arg_values                        // argument_values
                     );
}

void TraceEventAsyncEnd1(TraceArg category_group,
                         TraceArg name,
                         TraceIDArg id,
                         TraceArg arg1_name,
                         TraceArg arg1_val) {
  const char* arg_names[] = {arg1_name};
  const char* arg_values[] = {arg1_val};
  Dart_TimelineEvent(name,                           // label
                     Dart_TimelineGetMicros(),       // timestamp0
                     id,                             // timestamp1_or_async_id
                     Dart_Timeline_Event_Async_End,  // event type
                     1,                              // argument_count
                     arg_names,                      // argument_names
                     arg_values                      // argument_values
                     );
}

void TraceEventInstant0(TraceArg category_group, TraceArg name) {
  Dart_TimelineEvent(name,                         // label
                     Dart_TimelineGetMicros(),     // timestamp0
                     0,                            // timestamp1_or_async_id
                     Dart_Timeline_Event_Instant,  // event type
                     0,                            // argument_count
                     nullptr,                      // argument_names
                     nullptr                       // argument_values
                     );
}

}  // namespace tracing
}  // namespace fml