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 *  &#64;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}