1 // Copyright 2015 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package android.net.http; 6 7 import androidx.annotation.NonNull; 8 9 /** 10 * Defines callbacks methods for {@link UploadDataProvider}. All methods may be called synchronously 11 * or asynchronously, on any thread. 12 */ 13 public abstract class UploadDataSink { 14 /** 15 * Called by {@link UploadDataProvider} when a read succeeds. 16 * 17 * @param finalChunk For chunked uploads, {@code true} if this is the final read. It must be 18 * {@code false} for non-chunked uploads. 19 */ onReadSucceeded(boolean finalChunk)20 public abstract void onReadSucceeded(boolean finalChunk); 21 22 /** 23 * Called by {@link UploadDataProvider} when a read fails. 24 * 25 * @param exception Exception passed on to the embedder. 26 */ onReadError(@onNull Exception exception)27 public abstract void onReadError(@NonNull Exception exception); 28 29 /** 30 * Called by {@link UploadDataProvider} when a rewind succeeds. 31 */ onRewindSucceeded()32 public abstract void onRewindSucceeded(); 33 34 /** 35 * Called by {@link UploadDataProvider} when a rewind fails, or if rewinding uploads is not 36 * supported. 37 * 38 * @param exception Exception passed on to the embedder. 39 */ onRewindError(@onNull Exception exception)40 public abstract void onRewindError(@NonNull Exception exception); 41 } 42