1774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye/* 2774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * Copyright (C) 2015 The Android Open Source Project 3774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * 4774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * Licensed under the Apache License, Version 2.0 (the "License"); 5774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * you may not use this file except in compliance with the License. 6774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * You may obtain a copy of the License at 7774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * 8774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * http://www.apache.org/licenses/LICENSE-2.0 9774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * 10774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * Unless required by applicable law or agreed to in writing, software 11774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * distributed under the License is distributed on an "AS IS" BASIS, 12774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * See the License for the specific language governing permissions and 14774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * limitations under the License. 15774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye */ 16774c065affaddf66d4bec1126183435f7c663ab0Tor Norbyepackage android.support.annotation; 17774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye 18774c065affaddf66d4bec1126183435f7c663ab0Tor Norbyeimport java.lang.annotation.Retention; 19774c065affaddf66d4bec1126183435f7c663ab0Tor Norbyeimport java.lang.annotation.Target; 20774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye 21774c065affaddf66d4bec1126183435f7c663ab0Tor Norbyeimport static java.lang.annotation.ElementType.CONSTRUCTOR; 22774c065affaddf66d4bec1126183435f7c663ab0Tor Norbyeimport static java.lang.annotation.ElementType.METHOD; 23774c065affaddf66d4bec1126183435f7c663ab0Tor Norbyeimport static java.lang.annotation.ElementType.TYPE; 24774c065affaddf66d4bec1126183435f7c663ab0Tor Norbyeimport static java.lang.annotation.RetentionPolicy.CLASS; 25774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye 26774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye/** 27774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * Denotes that the annotated method should only be called on a worker thread. 28774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * If the annotated element is a class, then all methods in the class should be called 29774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * on a worker thread. 30774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * <p> 31774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * Example: 32774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * <pre>{@code 33774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * (@WorkerThread 34774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * protected abstract FilterResults performFiltering(CharSequence constraint); 35774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye * }</pre> 36774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye */ 37774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye@Retention(CLASS) 38774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye@Target({METHOD,CONSTRUCTOR,TYPE}) 39774c065affaddf66d4bec1126183435f7c663ab0Tor Norbyepublic @interface WorkerThread { 40774c065affaddf66d4bec1126183435f7c663ab0Tor Norbye}