Package io.netty.handler.codec.http2
Class DefaultHttp2Connection.DefaultStream
java.lang.Object
io.netty.handler.codec.http2.DefaultHttp2Connection.DefaultStream
- All Implemented Interfaces:
Http2Stream
- Direct Known Subclasses:
DefaultHttp2Connection.ConnectionStream
- Enclosing class:
DefaultHttp2Connection
Simple stream implementation. Streams can be compared to each other by priority.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class
Provides the lazy initialization for theDefaultHttp2Connection.DefaultStream
data map.Nested classes/interfaces inherited from interface io.netty.handler.codec.http2.Http2Stream
Http2Stream.State
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
private final long
private static final byte
private static final byte
private static final byte
private static final byte
private static final byte
private static final byte
private byte
private final DefaultHttp2Connection.DefaultStream.PropertyMap
private Http2Stream.State
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) void
activate()
close()
Closes the stream.(package private) Http2Stream
Closes the local side of this stream.Closes the remote side of this stream.(package private) DefaultHttp2Connection.DefaultEndpoint
<? extends Http2FlowController> boolean
final <V> V
Returns application-defined data if any was associated with this stream.int
hashCode()
headersReceived
(boolean isInformational) Indicates that headers have been received.headersSent
(boolean isInformational) Indicates that headers have been sent to the remote endpoint on this stream.final int
id()
Gets the unique identifier for this stream within the connection.boolean
Indicates whether or not the initial headers have been received.boolean
Indicates whether or not headers were sent to the remote endpoint.(package private) final boolean
isLocal()
boolean
Indicates whether or not a push promise was sent to the remote endpoint.boolean
Indicates whether aRST_STREAM
frame has been sent from the local endpoint for this stream.boolean
Indicates whether or not the trailers have been received.boolean
Indicates whether or not trailers were sent to the remote endpoint.open
(boolean halfClosed) Opens this stream, making it available viaHttp2Connection.forEachActiveStream(Http2StreamVisitor)
and transition state to:Http2Stream.State.OPEN
ifHttp2Stream.state()
isHttp2Stream.State.IDLE
andhalfClosed
isfalse
.Http2Stream.State.HALF_CLOSED_LOCAL
ifHttp2Stream.state()
isHttp2Stream.State.IDLE
andhalfClosed
istrue
and the stream is local.Indicates that a push promise was sent to the remote endpoint.final <V> V
Returns and removes application-defined data if any was associated with this stream.Sets the flag indicating that aRST_STREAM
frame has been sent from the local endpoint for this stream.final <V> V
setProperty
(Http2Connection.PropertyKey key, V value) Associates the application-defined data with this stream.final Http2Stream.State
state()
Gets the state of this stream.
-
Field Details
-
META_STATE_SENT_RST
private static final byte META_STATE_SENT_RST- See Also:
-
META_STATE_SENT_HEADERS
private static final byte META_STATE_SENT_HEADERS- See Also:
-
META_STATE_SENT_TRAILERS
private static final byte META_STATE_SENT_TRAILERS- See Also:
-
META_STATE_SENT_PUSHPROMISE
private static final byte META_STATE_SENT_PUSHPROMISE- See Also:
-
META_STATE_RECV_HEADERS
private static final byte META_STATE_RECV_HEADERS- See Also:
-
META_STATE_RECV_TRAILERS
private static final byte META_STATE_RECV_TRAILERS- See Also:
-
id
private final int id -
identity
private final long identity -
properties
-
state
-
metaState
private byte metaState
-
-
Constructor Details
-
DefaultStream
DefaultStream(long identity, int id, Http2Stream.State state)
-
-
Method Details
-
id
public final int id()Description copied from interface:Http2Stream
Gets the unique identifier for this stream within the connection.- Specified by:
id
in interfaceHttp2Stream
-
state
Description copied from interface:Http2Stream
Gets the state of this stream.- Specified by:
state
in interfaceHttp2Stream
-
isResetSent
public boolean isResetSent()Description copied from interface:Http2Stream
Indicates whether aRST_STREAM
frame has been sent from the local endpoint for this stream.- Specified by:
isResetSent
in interfaceHttp2Stream
-
resetSent
Description copied from interface:Http2Stream
Sets the flag indicating that aRST_STREAM
frame has been sent from the local endpoint for this stream. This does not affect the stream state.- Specified by:
resetSent
in interfaceHttp2Stream
-
headersSent
Description copied from interface:Http2Stream
Indicates that headers have been sent to the remote endpoint on this stream. The first call to this method would be for the initial headers (seeHttp2Stream.isHeadersSent()
} and the second call would indicate the trailers (seeHttp2Stream.isTrailersReceived()
).- Specified by:
headersSent
in interfaceHttp2Stream
- Parameters:
isInformational
-true
if the headers contain an informational status code (for responses only).
-
isHeadersSent
public boolean isHeadersSent()Description copied from interface:Http2Stream
Indicates whether or not headers were sent to the remote endpoint.- Specified by:
isHeadersSent
in interfaceHttp2Stream
-
isTrailersSent
public boolean isTrailersSent()Description copied from interface:Http2Stream
Indicates whether or not trailers were sent to the remote endpoint.- Specified by:
isTrailersSent
in interfaceHttp2Stream
-
headersReceived
Description copied from interface:Http2Stream
Indicates that headers have been received. The first call to this method would be for the initial headers (seeHttp2Stream.isHeadersReceived()
} and the second call would indicate the trailers (seeHttp2Stream.isTrailersReceived()
).- Specified by:
headersReceived
in interfaceHttp2Stream
- Parameters:
isInformational
-true
if the headers contain an informational status code (for responses only).
-
isHeadersReceived
public boolean isHeadersReceived()Description copied from interface:Http2Stream
Indicates whether or not the initial headers have been received.- Specified by:
isHeadersReceived
in interfaceHttp2Stream
-
isTrailersReceived
public boolean isTrailersReceived()Description copied from interface:Http2Stream
Indicates whether or not the trailers have been received.- Specified by:
isTrailersReceived
in interfaceHttp2Stream
-
pushPromiseSent
Description copied from interface:Http2Stream
Indicates that a push promise was sent to the remote endpoint.- Specified by:
pushPromiseSent
in interfaceHttp2Stream
-
isPushPromiseSent
public boolean isPushPromiseSent()Description copied from interface:Http2Stream
Indicates whether or not a push promise was sent to the remote endpoint.- Specified by:
isPushPromiseSent
in interfaceHttp2Stream
-
setProperty
Description copied from interface:Http2Stream
Associates the application-defined data with this stream.- Specified by:
setProperty
in interfaceHttp2Stream
- Returns:
- The value that was previously associated with
key
, ornull
if there was none.
-
getProperty
Description copied from interface:Http2Stream
Returns application-defined data if any was associated with this stream.- Specified by:
getProperty
in interfaceHttp2Stream
-
removeProperty
Description copied from interface:Http2Stream
Returns and removes application-defined data if any was associated with this stream.- Specified by:
removeProperty
in interfaceHttp2Stream
-
open
Description copied from interface:Http2Stream
Opens this stream, making it available viaHttp2Connection.forEachActiveStream(Http2StreamVisitor)
and transition state to:Http2Stream.State.OPEN
ifHttp2Stream.state()
isHttp2Stream.State.IDLE
andhalfClosed
isfalse
.Http2Stream.State.HALF_CLOSED_LOCAL
ifHttp2Stream.state()
isHttp2Stream.State.IDLE
andhalfClosed
istrue
and the stream is local. In this state,Http2Stream.isHeadersSent()
istrue
Http2Stream.State.HALF_CLOSED_REMOTE
ifHttp2Stream.state()
isHttp2Stream.State.IDLE
andhalfClosed
istrue
and the stream is remote. In this state,Http2Stream.isHeadersReceived()
istrue
Http2Stream.State.RESERVED_LOCAL
ifHttp2Stream.state()
isHttp2Stream.State.HALF_CLOSED_REMOTE
.Http2Stream.State.RESERVED_REMOTE
ifHttp2Stream.state()
isHttp2Stream.State.HALF_CLOSED_LOCAL
.
- Specified by:
open
in interfaceHttp2Stream
- Throws:
Http2Exception
-
activate
void activate() -
close
-
close
Description copied from interface:Http2Stream
Closes the stream.- Specified by:
close
in interfaceHttp2Stream
-
closeLocalSide
Description copied from interface:Http2Stream
Closes the local side of this stream. If this makes the stream closed, the child is closed as well.- Specified by:
closeLocalSide
in interfaceHttp2Stream
-
closeRemoteSide
Description copied from interface:Http2Stream
Closes the remote side of this stream. If this makes the stream closed, the child is closed as well.- Specified by:
closeRemoteSide
in interfaceHttp2Stream
-
createdBy
DefaultHttp2Connection.DefaultEndpoint<? extends Http2FlowController> createdBy() -
isLocal
final boolean isLocal() -
equals
-
hashCode
public int hashCode()
-