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