1687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar/*
2687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * Copyright 2017 The Android Open Source Project
3687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar *
4687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * Licensed under the Apache License, Version 2.0 (the "License");
5687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * you may not use this file except in compliance with the License.
6687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * You may obtain a copy of the License at
7687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar *
8687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar *      http://www.apache.org/licenses/LICENSE-2.0
9687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar *
10687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * Unless required by applicable law or agreed to in writing, software
11687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * distributed under the License is distributed on an "AS IS" BASIS,
12687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * See the License for the specific language governing permissions and
14687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * limitations under the License.
15687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar */
16687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar
17564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariapackage androidx.work.impl.utils.taskexecutor;
18687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar
19687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagarimport android.support.annotation.RestrictTo;
20687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar
21687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar/**
22687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * Interface for executing common tasks in WorkManager.
23687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar * @hide
24687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar */
25687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar
26687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
27687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagarpublic interface TaskExecutor {
28687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar
29687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar    /**
30687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar     * @param runnable {@link Runnable} to post to the main thread.
31687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar     */
32687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar    void postToMainThread(Runnable runnable);
33687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar
34687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar    /**
35687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar     * @param runnable {@link Runnable} to execute on a background thread pool.
36687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar     */
37687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar    void executeOnBackgroundThread(Runnable runnable);
38687da3388ece2fefd80c710c382dff908b615a3fXyan Bhatnagar}
39