1f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye/* 2f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * Copyright (C) 2015 The Android Open Source Project 3f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * 4f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * Licensed under the Apache License, Version 2.0 (the "License"); 5f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * you may not use this file except in compliance with the License. 6f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * You may obtain a copy of the License at 7f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * 8f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * http://www.apache.org/licenses/LICENSE-2.0 9f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * 10f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * Unless required by applicable law or agreed to in writing, software 11f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * distributed under the License is distributed on an "AS IS" BASIS, 12f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * See the License for the specific language governing permissions and 14f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * limitations under the License. 15f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye */ 16f8b833605e459265f46cd509beb556cc83d2eedaTor Norbyepackage android.annotation; 17f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye 18f8b833605e459265f46cd509beb556cc83d2eedaTor Norbyeimport java.lang.annotation.Retention; 19f8b833605e459265f46cd509beb556cc83d2eedaTor Norbyeimport java.lang.annotation.Target; 20f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye 21f8b833605e459265f46cd509beb556cc83d2eedaTor Norbyeimport static java.lang.annotation.ElementType.CONSTRUCTOR; 22f8b833605e459265f46cd509beb556cc83d2eedaTor Norbyeimport static java.lang.annotation.ElementType.METHOD; 23f8b833605e459265f46cd509beb556cc83d2eedaTor Norbyeimport static java.lang.annotation.ElementType.TYPE; 24f8b833605e459265f46cd509beb556cc83d2eedaTor Norbyeimport static java.lang.annotation.RetentionPolicy.SOURCE; 25f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye 26f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye/** 27f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * Denotes that the annotated method should only be called on a worker thread. 28f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * If the annotated element is a class, then all methods in the class should be called 29f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * on a worker thread. 30f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * <p> 31f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * Example: 3271fbb81b14958b80fe55738607740c6630e4e9daNeil Fuller * <pre><code> 3371fbb81b14958b80fe55738607740c6630e4e9daNeil Fuller * @WorkerThread 34f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * protected abstract FilterResults performFiltering(CharSequence constraint); 3571fbb81b14958b80fe55738607740c6630e4e9daNeil Fuller * </code></pre> 36f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * 37f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye * {@hide} 38f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye */ 39f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye@Retention(SOURCE) 40f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye@Target({METHOD,CONSTRUCTOR,TYPE}) 41f8b833605e459265f46cd509beb556cc83d2eedaTor Norbyepublic @interface WorkerThread { 42f8b833605e459265f46cd509beb556cc83d2eedaTor Norbye}