14484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria/* 24484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * Copyright 2018 The Android Open Source Project 34484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * 44484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * Licensed under the Apache License, Version 2.0 (the "License"); 54484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * you may not use this file except in compliance with the License. 64484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * You may obtain a copy of the License at 74484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * 84484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * http://www.apache.org/licenses/LICENSE-2.0 94484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * 104484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * Unless required by applicable law or agreed to in writing, software 114484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * distributed under the License is distributed on an "AS IS" BASIS, 124484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * See the License for the specific language governing permissions and 144484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * limitations under the License. 154484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria */ 164484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria 174484814aab16eec8d004c9e560ed5e25e0272d4dSumir Katariapackage androidx.work; 184484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria 194484814aab16eec8d004c9e560ed5e25e0272d4dSumir Katariaimport android.support.annotation.WorkerThread; 204484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria 215a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumarimport java.util.List; 225a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar 234484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria/** 244484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * Blocking methods for {@link WorkContinuation} operations. These methods are expected to be 254484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * called from a background thread. 264484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria */ 2762e0be94ea7e54ca9227564b14c1c6736ae770f7Sumir Katariapublic interface SynchronousWorkContinuation { 284484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria 294484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria /** 3062e0be94ea7e54ca9227564b14c1c6736ae770f7Sumir Kataria * Enqueues the instance of {@link WorkContinuation} in a synchronous fashion. This method is 314484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * expected to be called from a background thread and, upon successful execution, you can rely 324484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria * on that the work has been enqueued. 334484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria */ 344484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria @WorkerThread 3562e0be94ea7e54ca9227564b14c1c6736ae770f7Sumir Kataria void enqueueSync(); 365a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar 375a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar /** 385a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar * Returns a {@link List} of {@link WorkStatus} that provides information about work, 395a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar * their progress, and any resulting output in the {@link WorkContinuation}. 405a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar * 415a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar * @return A {@link List} of {@link WorkStatus}es 425a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar */ 435a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar @WorkerThread 445a4ced8020d8a3ee4b9100b97559db3d1fb5132bRahul Ravikumar List<WorkStatus> getStatusesSync(); 454484814aab16eec8d004c9e560ed5e25e0272d4dSumir Kataria} 46