BidirectionalStream.Callback

abstract class BidirectionalStream.Callback


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

요약

공개 생성자

공개 함수

Unit

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

abstract Unit
onFailed(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    error: CronetException!
)

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

abstract Unit
onReadCompleted(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    buffer: ByteBuffer!,
    endOfStream: Boolean
)

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

abstract Unit

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

Unit
onResponseTrailersReceived(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    trailers: UrlResponseInfo.HeaderBlock!
)

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

abstract Unit

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

abstract Unit

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

abstract Unit
onWriteCompleted(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    buffer: ByteBuffer!,
    endOfStream: Boolean
)

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

공개 생성자

콜백

Callback()

공개 함수

onCanceled

fun onCanceled(stream: BidirectionalStream!, info: UrlResponseInfo!): Unit

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

매개변수
stream: BidirectionalStream!

취소된 스트림

info: UrlResponseInfo!

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

onFailed

abstract fun onFailed(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    error: CronetException!
): Unit

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

매개변수
stream: BidirectionalStream!

실패한 스트림

info: UrlResponseInfo!

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

error: CronetException!

실패에 관한 정보

onReadCompleted

abstract fun onReadCompleted(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    buffer: ByteBuffer!,
    endOfStream: Boolean
): Unit

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

매개변수
stream: BidirectionalStream!

읽기가 완료된 스트림

info: UrlResponseInfo!

응답 정보

buffer: ByteBuffer!

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

endOfStream: Boolean

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

onResponseHeadersReceived

abstract fun onResponseHeadersReceived(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!
): Unit

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

매개변수
stream: BidirectionalStream!

응답 헤더가 수신된 스트림

info: UrlResponseInfo!

응답 정보입니다.

onResponseTrailersReceived

fun onResponseTrailersReceived(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    trailers: UrlResponseInfo.HeaderBlock!
): Unit

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

매개변수
stream: BidirectionalStream!

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

info: UrlResponseInfo!

응답 정보

trailers: UrlResponseInfo.HeaderBlock!

수신된 트레일러

onStreamReady

abstract fun onStreamReady(stream: BidirectionalStream!): Unit

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

매개변수
stream: BidirectionalStream!

준비된 스트림

onSucceeded

abstract fun onSucceeded(stream: BidirectionalStream!, info: UrlResponseInfo!): Unit

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

매개변수
stream: BidirectionalStream!

성공적으로 닫힌 스트림

info: UrlResponseInfo!

응답 정보

onWriteCompleted

abstract fun onWriteCompleted(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    buffer: ByteBuffer!,
    endOfStream: Boolean
): Unit

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

매개변수
stream: BidirectionalStream!

쓰기가 완료된 스트림

info: UrlResponseInfo!

응답 정보

buffer: ByteBuffer!

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

endOfStream: Boolean

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