111f53e96831149940d2e3df0f55752664e82c8a6Winson Chung/* 211f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Copyright (C) 2017 The Android Open Source Project 311f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * 411f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Licensed under the Apache License, Version 2.0 (the "License"); 511f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * you may not use this file except in compliance with the License. 611f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * You may obtain a copy of the License at 711f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * 811f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * http://www.apache.org/licenses/LICENSE-2.0 911f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * 1011f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Unless required by applicable law or agreed to in writing, software 1111f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * distributed under the License is distributed on an "AS IS" BASIS, 1211f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1311f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * See the License for the specific language governing permissions and 1411f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * limitations under the License. 1511f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 1611f53e96831149940d2e3df0f55752664e82c8a6Winson Chungpackage com.android.systemui.shared.recents.utilities; 1711f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 1811f53e96831149940d2e3df0f55752664e82c8a6Winson Chungimport static android.os.Trace.TRACE_TAG_APP; 1911f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 2011f53e96831149940d2e3df0f55752664e82c8a6Winson Chung/** 2111f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Helper class for internal trace functions. 2211f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 2311f53e96831149940d2e3df0f55752664e82c8a6Winson Chungpublic class AppTrace { 2411f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 2511f53e96831149940d2e3df0f55752664e82c8a6Winson Chung /** 2611f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Begins a new async trace section with the given {@param key} and {@param cookie}. 2711f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 2811f53e96831149940d2e3df0f55752664e82c8a6Winson Chung public static void start(String key, int cookie) { 2911f53e96831149940d2e3df0f55752664e82c8a6Winson Chung android.os.Trace.asyncTraceBegin(TRACE_TAG_APP, key, cookie); 3011f53e96831149940d2e3df0f55752664e82c8a6Winson Chung } 3111f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 3211f53e96831149940d2e3df0f55752664e82c8a6Winson Chung /** 3311f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Begins a new async trace section with the given {@param key}. 3411f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 3511f53e96831149940d2e3df0f55752664e82c8a6Winson Chung public static void start(String key) { 3611f53e96831149940d2e3df0f55752664e82c8a6Winson Chung android.os.Trace.asyncTraceBegin(TRACE_TAG_APP, key, 0); 3711f53e96831149940d2e3df0f55752664e82c8a6Winson Chung } 3811f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 3911f53e96831149940d2e3df0f55752664e82c8a6Winson Chung /** 4011f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Ends an existing async trace section with the given {@param key}. 4111f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 4211f53e96831149940d2e3df0f55752664e82c8a6Winson Chung public static void end(String key) { 4311f53e96831149940d2e3df0f55752664e82c8a6Winson Chung android.os.Trace.asyncTraceEnd(TRACE_TAG_APP, key, 0); 4411f53e96831149940d2e3df0f55752664e82c8a6Winson Chung } 4511f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 4611f53e96831149940d2e3df0f55752664e82c8a6Winson Chung /** 4711f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Ends an existing async trace section with the given {@param key} and {@param cookie}. 4811f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 4911f53e96831149940d2e3df0f55752664e82c8a6Winson Chung public static void end(String key, int cookie) { 5011f53e96831149940d2e3df0f55752664e82c8a6Winson Chung android.os.Trace.asyncTraceEnd(TRACE_TAG_APP, key, cookie); 5111f53e96831149940d2e3df0f55752664e82c8a6Winson Chung } 5211f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 5311f53e96831149940d2e3df0f55752664e82c8a6Winson Chung /** 5411f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Begins a new trace section with the given {@param key}. Can be nested. 5511f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 5611f53e96831149940d2e3df0f55752664e82c8a6Winson Chung public static void beginSection(String key) { 5711f53e96831149940d2e3df0f55752664e82c8a6Winson Chung android.os.Trace.beginSection(key); 5811f53e96831149940d2e3df0f55752664e82c8a6Winson Chung } 5911f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 6011f53e96831149940d2e3df0f55752664e82c8a6Winson Chung /** 6111f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Ends an existing trace section started in the last {@link #beginSection(String)}. 6211f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 6311f53e96831149940d2e3df0f55752664e82c8a6Winson Chung public static void endSection() { 6411f53e96831149940d2e3df0f55752664e82c8a6Winson Chung android.os.Trace.endSection(); 6511f53e96831149940d2e3df0f55752664e82c8a6Winson Chung } 6611f53e96831149940d2e3df0f55752664e82c8a6Winson Chung 6711f53e96831149940d2e3df0f55752664e82c8a6Winson Chung /** 6811f53e96831149940d2e3df0f55752664e82c8a6Winson Chung * Traces a counter value. 6911f53e96831149940d2e3df0f55752664e82c8a6Winson Chung */ 7011f53e96831149940d2e3df0f55752664e82c8a6Winson Chung public static void count(String name, int count) { 7111f53e96831149940d2e3df0f55752664e82c8a6Winson Chung android.os.Trace.traceCounter(TRACE_TAG_APP, name, count); 7211f53e96831149940d2e3df0f55752664e82c8a6Winson Chung } 7311f53e96831149940d2e3df0f55752664e82c8a6Winson Chung} 74