/*
* Copyright (c) 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.stetho.inspector.network;
import java.io.IOException;
/**
* Custom hook to intercept read events delivered by
* {@link NetworkEventReporter#interpretResponseStream}.
*/
public interface ResponseHandler {
/**
* Signal that data has been read from the response stream.
*
* @param numBytes Bytes read from the network stack's stream as established by
* {@link NetworkEventReporter#interpretResponseStream}.
*/
void onRead(int numBytes);
/**
* Signal that data has been decoded (reversing the response's {@code Content-Encoding}) while
* reading a raw stream. This method is only called when the stream is known to have
* a supported encoding. Note that for HTTP, content encoding almost always is used for
* some form of response compression.
*
* @param numBytes Bytes yielded after decoding bytes received from the network stack's
* stream.
*/
void onReadDecoded(int numBytes);
/**
* Signals that EOF has been reached reading the response stream from the network
* stack.
*/
void onEOF();
/**
* Signals that an error occurred while reading the response stream.
*/
void onError(IOException e);
}