@UnstableApi public interface Http2LifecycleManager
限定符和类型 | 方法和说明 |
---|---|
void |
closeStream(Http2Stream stream,
ChannelFuture future)
Closes and deactivates the given
stream . |
void |
closeStreamLocal(Http2Stream stream,
ChannelFuture future)
Closes the local side of the
stream . |
void |
closeStreamRemote(Http2Stream stream,
ChannelFuture future)
Closes the remote side of the
stream . |
ChannelFuture |
goAway(ChannelHandlerContext ctx,
int lastStreamId,
long errorCode,
ByteBuf debugData,
ChannelPromise promise)
Prevents the peer from creating streams and close the connection if
errorCode is not
Http2Error.NO_ERROR . |
void |
onError(ChannelHandlerContext ctx,
boolean outbound,
java.lang.Throwable cause)
Processes the given error.
|
ChannelFuture |
resetStream(ChannelHandlerContext ctx,
int streamId,
long errorCode,
ChannelPromise promise)
Ensure the stream identified by
streamId is reset. |
void closeStreamLocal(Http2Stream stream, ChannelFuture future)
stream
. Depending on the stream
state this may result in
stream
being closed. See closeStream(Http2Stream, ChannelFuture)
.stream
- the stream to be half closed.future
- See closeStream(Http2Stream, ChannelFuture)
.void closeStreamRemote(Http2Stream stream, ChannelFuture future)
stream
. Depending on the stream
state this may result in
stream
being closed. See closeStream(Http2Stream, ChannelFuture)
.stream
- the stream to be half closed.future
- See closeStream(Http2Stream, ChannelFuture)
.void closeStream(Http2Stream stream, ChannelFuture future)
stream
. A listener is also attached to future
and upon
completion the underlying channel will be closed if Http2Connection.numActiveStreams()
is 0.stream
- the stream to be closed and deactivated.future
- when completed if Http2Connection.numActiveStreams()
is 0 then the underlying channel
will be closed.ChannelFuture resetStream(ChannelHandlerContext ctx, int streamId, long errorCode, ChannelPromise promise)
streamId
is reset. If our local state does not indicate the stream has
been reset yet then a RST_STREAM
will be sent to the peer. If our local state indicates the stream
has already been reset then the return status will indicate success without sending anything to the peer.ctx
- The context used for communication and buffer allocation if necessary.streamId
- The identifier of the stream to reset.errorCode
- Justification as to why this stream is being reset. See Http2Error
.promise
- Used to indicate the return status of this operation.RST_STREAM
frame has been sent to the peer. If the stream state has already been updated and a
RST_STREAM
frame has been sent then the return status may indicate success immediately.ChannelFuture goAway(ChannelHandlerContext ctx, int lastStreamId, long errorCode, ByteBuf debugData, ChannelPromise promise)
errorCode
is not
Http2Error.NO_ERROR
. After this call the peer is not allowed to create any new streams and the local
endpoint will be limited to creating streams with stream identifier <= lastStreamId
. This may result in
sending a GO_AWAY
frame (assuming we have not already sent one with
Last-Stream-ID <= lastStreamId
), or may just return success if a GO_AWAY
has previously been
sent.ctx
- The context used for communication and buffer allocation if necessary.lastStreamId
- The last stream that the local endpoint is claiming it will accept.errorCode
- The rational as to why the connection is being closed. See Http2Error
.debugData
- For diagnostic purposes (carries no semantic value).promise
- Used to indicate the return status of this operation.GO_AWAY
frame has been sent to the peer. If the stream state has already been updated and a
GO_AWAY
frame has been sent then the return status may indicate success immediately.void onError(ChannelHandlerContext ctx, boolean outbound, java.lang.Throwable cause)
ctx
- The context used for communication and buffer allocation if necessary.outbound
- true
if the error was caused by an outbound operation and so the corresponding
ChannelPromise
was failed as well.cause
- the error.