• Home
  • Raw
  • Download

Lines Matching +full:ts +full:- +full:api +full:- +full:utils

4  * Use of this source code is governed by a BSD-style license that can be
12 #include "src/utils/SkJSONWriter.h"
13 #include "src/utils/SkOSPath.h"
48 char* stringTable() { return reinterpret_cast<char*>(this->args() + fNumArgs); } in stringTable()
54 this->createBlock(); in ChromeTracingTracer()
57 ChromeTracingTracer::~ChromeTracingTracer() { this->flush(); } in ~ChromeTracingTracer()
71 this->createBlock(); in appendEvent()
108 traceEvent->fPhase = phase; in addTraceEvent()
109 traceEvent->fNumArgs = numArgs; in addTraceEvent()
110 traceEvent->fSize = size; in addTraceEvent()
111 traceEvent->fName = name; in addTraceEvent()
112 traceEvent->fID = id; in addTraceEvent()
113 traceEvent->fClockBegin = std::chrono::steady_clock::now().time_since_epoch().count(); in addTraceEvent()
114 traceEvent->fClockEnd = 0; in addTraceEvent()
115 traceEvent->fThreadID = SkGetThreadID(); in addTraceEvent()
117 TraceEventArg* traceEventArgs = traceEvent->args(); in addTraceEvent()
118 char* stringTableBase = traceEvent->stringTable(); in addTraceEvent()
125 traceEventArgs[i].fArgValue = stringTable - stringTableBase; in addTraceEvent()
139 return this->appendEvent(storagePtr, size); in addTraceEvent()
148 traceEvent->fClockEnd = std::chrono::steady_clock::now().time_since_epoch().count(); in updateTraceEventDuration()
159 case TRACE_VALUE_TYPE_BOOL: writer->appendBool(value.as_bool); break; in trace_value_to_json()
160 case TRACE_VALUE_TYPE_UINT: writer->appendU64(value.as_uint); break; in trace_value_to_json()
161 case TRACE_VALUE_TYPE_INT: writer->appendS64(value.as_int); break; in trace_value_to_json()
162 case TRACE_VALUE_TYPE_DOUBLE: writer->appendDouble(value.as_double); break; in trace_value_to_json()
163 case TRACE_VALUE_TYPE_POINTER: writer->appendPointer(value.as_pointer); break; in trace_value_to_json()
164 case TRACE_VALUE_TYPE_STRING: writer->appendString(value.as_string); break; in trace_value_to_json()
166 writer->appendString(stringTableBase + value.as_uint); in trace_value_to_json()
168 default: writer->appendString("<unknown type>"); break; in trace_value_to_json()
200 auto baseTypeResolver = &(serializationState->fBaseTypeResolver); in trace_event_to_json()
201 if (TRACE_EVENT_PHASE_CREATE_OBJECT == traceEvent->fPhase) { in trace_event_to_json()
202 SkASSERT(nullptr == baseTypeResolver->find(traceEvent->fID)); in trace_event_to_json()
203 baseTypeResolver->set(traceEvent->fID, traceEvent->fName); in trace_event_to_json()
204 } else if (TRACE_EVENT_PHASE_DELETE_OBJECT == traceEvent->fPhase) { in trace_event_to_json()
205 SkASSERT(nullptr != baseTypeResolver->find(traceEvent->fID)); in trace_event_to_json()
206 baseTypeResolver->remove(traceEvent->fID); in trace_event_to_json()
209 writer->beginObject(); in trace_event_to_json()
211 char phaseString[2] = {traceEvent->fPhase, 0}; in trace_event_to_json()
212 writer->appendString("ph", phaseString); in trace_event_to_json()
213 writer->appendString("name", traceEvent->fName); in trace_event_to_json()
214 if (0 != traceEvent->fID) { in trace_event_to_json()
216 writer->appendPointer("id", reinterpret_cast<void*>(traceEvent->fID)); in trace_event_to_json()
222 static_cast<int64_t>(traceEvent->fClockBegin - serializationState->fClockOffset); in trace_event_to_json()
223 writer->appendDouble("ts", static_cast<double>(relativeTimestamp) * 1E-3); in trace_event_to_json()
224 if (0 != traceEvent->fClockEnd) { in trace_event_to_json()
225 double dur = static_cast<double>(traceEvent->fClockEnd - traceEvent->fClockBegin) * 1E-3; in trace_event_to_json()
226 writer->appendDouble("dur", dur); in trace_event_to_json()
229 writer->appendS64("tid", serializationState->getShortThreadID(traceEvent->fThreadID)); in trace_event_to_json()
231 // important (and certainly not worth adding a cross-platform API to get it). in trace_event_to_json()
232 writer->appendS32("pid", 0); in trace_event_to_json()
234 if (traceEvent->fNumArgs) { in trace_event_to_json()
235 writer->beginObject("args"); in trace_event_to_json()
236 const char* stringTable = traceEvent->stringTable(); in trace_event_to_json()
238 if (TRACE_EVENT_PHASE_SNAPSHOT_OBJECT == traceEvent->fPhase && in trace_event_to_json()
239 baseTypeResolver->find(traceEvent->fID) && in trace_event_to_json()
240 0 != strcmp(*baseTypeResolver->find(traceEvent->fID), traceEvent->fName)) { in trace_event_to_json()
242 writer->beginObject("snapshot"); in trace_event_to_json()
243 writer->appendString("base_type", *baseTypeResolver->find(traceEvent->fID)); in trace_event_to_json()
247 for (int i = 0; i < traceEvent->fNumArgs; ++i) { in trace_event_to_json()
248 const TraceEventArg* arg = traceEvent->args() + i; in trace_event_to_json()
250 writer->appendName(arg->fArgName); in trace_event_to_json()
252 if (arg->fArgName && '#' == arg->fArgName[0]) { in trace_event_to_json()
253 writer->beginObject(); in trace_event_to_json()
254 writer->appendName("id_ref"); in trace_event_to_json()
255 trace_value_to_json(writer, arg->fArgValue, arg->fArgType, stringTable); in trace_event_to_json()
256 writer->endObject(); in trace_event_to_json()
258 trace_value_to_json(writer, arg->fArgValue, arg->fArgType, stringTable); in trace_event_to_json()
263 writer->endObject(); in trace_event_to_json()
266 writer->endObject(); in trace_event_to_json()
269 writer->endObject(); in trace_event_to_json()
288 clockOffset = reinterpret_cast<TraceEvent*>(fBlocks[0].fBlock.get())->fClockBegin; in flush()
290 clockOffset = reinterpret_cast<TraceEvent*>(fCurBlock.fBlock.get())->fClockBegin; in flush()
301 traceEvent = traceEvent->next(); in flush()