BidirectionalStream.Callback

public abstract class BidirectionalStream.Callback


BidirectionalStream에서 콜백을 수신하는 데 사용되는 콜백 클래스입니다.

요약

공개 생성자

공개 메서드

void

cancel을 통해 스트림이 취소된 경우 호출됩니다.

abstract void
onFailed(
    BidirectionalStream stream,
    UrlResponseInfo info,
    CronetException error
)

start 후 스트림이 어떤 이유로든 실패한 경우 호출됩니다.

abstract void
onReadCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

데이터가 read()에 전달된 버퍼로 읽어질 때 호출됩니다.

abstract void

초기 응답 헤더가 수신될 때 호출됩니다.

void

스트림을 닫기 전에 트레일러가 수신될 때 호출됩니다.

abstract void

스트림을 읽고 쓸 준비가 되면 호출됩니다.

abstract void

읽거나 쓸 데이터가 없고 스트림이 원격 및 로컬에서 모두 성공적으로 닫힐 때 호출됩니다.

abstract void
onWriteCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

write()에 전달된 전체 ByteBuffer가 전송될 때 호출됩니다.

공개 생성자

콜백

public Callback()

공개 메서드

onCanceled

public void onCanceled(BidirectionalStream stream, UrlResponseInfo info)

cancel을 통해 스트림이 취소된 경우 호출됩니다. 호출되면 추가 BidirectionalStream.Callback 메서드가 호출되지 않습니다. 기본 구현은 아무 작업도 실행하지 않습니다.

매개변수
BidirectionalStream stream

취소된 스트림

UrlResponseInfo info

응답 정보입니다. 응답이 수신되지 않은 경우 null일 수 있습니다.

onFailed

public abstract void onFailed(
    BidirectionalStream stream,
    UrlResponseInfo info,
    CronetException error
)

start 후 스트림이 어떤 이유로든 실패한 경우 호출됩니다. HTTP/2 오류 코드getCronetInternalErrorCode 코드로 매핑됩니다. 호출되면 추가 BidirectionalStream.Callback 메서드가 호출되지 않습니다.

매개변수
BidirectionalStream stream

실패한 스트림

UrlResponseInfo info

응답 정보입니다. 응답이 수신되지 않은 경우 null일 수 있습니다.

CronetException error

실패에 관한 정보

onReadCompleted

public abstract void onReadCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

데이터가 read()에 전달된 버퍼로 읽어질 때 호출됩니다. 버퍼의 일부만 채워질 수 있습니다. 읽기를 계속하려면 read()를 호출하세요. 트레일러가 수신되기 전에 대기 중인 읽기 데이터가 있는 경우 onResponseTrailersReceived() 후에 호출될 수 있습니다.

매개변수
BidirectionalStream stream

읽기가 완료된 스트림

UrlResponseInfo info

응답 정보

ByteBuffer buffer

read()에 전달되었으며 이제 수신된 데이터를 포함하는 버퍼입니다. 버퍼의 한도는 변경되지 않습니다. 버퍼의 위치는 수신된 데이터의 끝으로 설정됩니다. 위치가 업데이트되지 않으면 원격 측에서 더 이상 데이터를 전송하지 않음을 알린 것입니다.

boolean endOfStream

true인 경우 마지막으로 읽은 데이터이며 원격에서 더 이상 데이터를 전송하지 않고 읽기 측이 닫힙니다.

onResponseHeadersReceived

public abstract void onResponseHeadersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info
)

초기 응답 헤더가 수신될 때 호출됩니다. 헤더는 info.getAllHeaders()에서 사용할 수 있습니다. 소비자는 read()를 호출하여 읽기를 시작할 수 있습니다. 소비자는 write()를 호출하여 쓰기를 시작하거나 스트림을 닫을 수 있습니다.

매개변수
BidirectionalStream stream

응답 헤더가 수신된 스트림입니다.

UrlResponseInfo info

응답 정보입니다.

onResponseTrailersReceived

public void onResponseTrailersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info,
    UrlResponseInfo.HeaderBlock trailers
)

스트림을 닫기 전에 트레일러가 수신될 때 호출됩니다. 서버가 트레일러를 전송할 때만 호출됩니다. 서버가 트레일러를 전송하지 않을 수도 있습니다. 로컬 버퍼에 읽기 데이터가 남아 있는 동안 호출될 수 있습니다. 기본 구현은 아무 작업도 실행하지 않습니다.

매개변수
BidirectionalStream stream

응답 트레일러가 수신된 스트림

UrlResponseInfo info

응답 정보

UrlResponseInfo.HeaderBlock trailers

수신된 트레일러

onStreamReady

public abstract void onStreamReady(BidirectionalStream stream)

스트림을 읽고 쓸 준비가 되면 호출됩니다. 소비자는 read()를 호출하여 데이터 읽기를 시작할 수 있습니다. 소비자는 write()를 호출하여 데이터 쓰기를 시작할 수 있습니다.

매개변수
BidirectionalStream stream

준비된 스트림입니다.

onSucceeded

public abstract void onSucceeded(BidirectionalStream stream, UrlResponseInfo info)

읽거나 쓸 데이터가 없고 스트림이 원격 및 로컬에서 모두 성공적으로 닫힐 때 호출됩니다. 호출되면 추가 BidirectionalStream.Callback 메서드가 호출되지 않습니다.

매개변수
BidirectionalStream stream

성공적으로 닫힌 스트림

UrlResponseInfo info

응답 정보

onWriteCompleted

public abstract void onWriteCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

write()에 전달된 전체 ByteBuffer가 전송될 때 호출됩니다. 버퍼의 위치가 버퍼의 한도와 동일하도록 업데이트됩니다. 버퍼의 한도는 변경되지 않습니다. 쓰기를 계속하려면 write()를 호출하세요.

매개변수
BidirectionalStream stream

쓰기가 완료된 스트림

UrlResponseInfo info

응답 정보

ByteBuffer buffer

write()에 전달된 버퍼입니다. 버퍼의 위치가 버퍼의 한도로 설정됩니다. 버퍼의 한도는 변경되지 않습니다.

boolean endOfStream

해당 write()에 전달된 endOfStream 플래그입니다. true인 경우 쓰기 측이 닫힙니다.