/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ package com.facebook.systrace import androidx.tracing.Trace /** * Systrace stub that mostly does nothing but delegates to Trace for beginning/ending sections. The * internal version of this file has not been opensourced yet. */ @Suppress("UNUSED_PARAMETER") public object Systrace { public const val TRACE_TAG_REACT_JAVA_BRIDGE: Long = 0L public const val TRACE_TAG_REACT_APPS: Long = 0L public const val TRACE_TAG_REACT_FRESCO: Long = 0L public const val TRACE_TAG_REACT_VIEW: Long = 0L public const val TRACE_TAG_REACT_JS_VM_CALLS: Long = 0L @JvmStatic public fun registerListener(listener: TraceListener?): Unit = Unit @JvmStatic public fun unregisterListener(listener: TraceListener?): Unit = Unit @JvmStatic public fun isTracing(tag: Long): Boolean = false @JvmStatic public fun traceInstant(tag: Long, title: String?, scope: EventScope?): Unit = Unit @JvmStatic public fun beginSection(tag: Long, sectionName: String) { Trace.beginSection(sectionName) } @JvmStatic public fun endSection(tag: Long) { Trace.endSection() } @JvmStatic public fun beginAsyncSection(tag: Long, sectionName: String, cookie: Int) { Trace.beginAsyncSection(sectionName, cookie) } @JvmStatic public fun beginAsyncSection(tag: Long, sectionName: String, cookie: Int, startNanos: Long) { beginAsyncSection(tag, sectionName, cookie) } @JvmStatic public fun endAsyncSection(tag: Long, sectionName: String, cookie: Int) { Trace.endAsyncSection(sectionName, cookie) } @JvmStatic public fun endAsyncSection(tag: Long, sectionName: String, cookie: Int, endNanos: Long) { endAsyncSection(tag, sectionName, cookie) } @JvmStatic public fun traceCounter(tag: Long, counterName: String, counterValue: Int) { Trace.setCounter(counterName, counterValue) } @JvmStatic public fun startAsyncFlow(tag: Long, sectionName: String, cookie: Int) { beginAsyncSection(tag, sectionName, cookie) } @JvmStatic public fun stepAsyncFlow(tag: Long, sectionName: String, cookie: Int): Unit = Unit @JvmStatic public fun endAsyncFlow(tag: Long, sectionName: String, cookie: Int) { endAsyncSection(tag, sectionName, cookie) } public enum class EventScope(public val code: Char) { THREAD('t'), PROCESS('p'), GLOBAL('g') } }