• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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