Top Description Inners Fields Constructors Methods
org.apache.coyote.http2

pack-priv Class StreamStateMachine

extends Object
Class Inheritance
Imports
java.util.Arrays, .HashSet, .Set, org.apache.juli.logging.Log, .LogFactory, org.apache.tomcat.util.res.StringManager

See state diagram in RFC 7540.
The following additions are supported by this state machine:

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static enum

Field Summary

Modifier and TypeField and Description
private final String
private static final Log
private static final StringManager
private StreamStateMachine.State
private final String

Constructor Summary

AccessConstructor and Description
pack-priv
StreamStateMachine(String connectionId, String streamId)

Method Summary

Modifier and TypeMethod and Description
pack-priv final synchronized boolean
pack-priv final synchronized boolean
pack-priv final synchronized void
pack-priv final synchronized void
pack-priv final synchronized String
pack-priv final synchronized boolean
pack-priv final synchronized boolean
pack-priv final synchronized boolean
pack-priv final synchronized void
pack-priv final synchronized void
pack-priv final synchronized void
public synchronized void
sendReset()

Marks the stream as reset.

pack-priv final synchronized void
pack-priv final synchronized void
pack-priv final synchronized void
private void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

connectionIdback to summary
private final String connectionId
logback to summary
private static final Log log
smback to summary
private static final StringManager sm
stateback to summary
private StreamStateMachine.State state
streamIdback to summary
private final String streamId

Constructor Detail

StreamStateMachineback to summary
pack-priv StreamStateMachine(String connectionId, String streamId)

Method Detail

canReadback to summary
pack-priv final synchronized boolean canRead()
canWriteback to summary
pack-priv final synchronized boolean canWrite()
checkFrameTypeback to summary
pack-priv final synchronized void checkFrameType(FrameType frameType) throws Http2Exception
closeIfIdleback to summary
pack-priv final synchronized void closeIfIdle()
getCurrentStateNameback to summary
pack-priv final synchronized String getCurrentStateName()
isActiveback to summary
pack-priv final synchronized boolean isActive()
isClosedFinalback to summary
pack-priv final synchronized boolean isClosedFinal()
isFrameTypePermittedback to summary
pack-priv final synchronized boolean isFrameTypePermitted(FrameType frameType)
receivedEndOfStreamback to summary
pack-priv final synchronized void receivedEndOfStream()
receivedResetback to summary
pack-priv final synchronized void receivedReset()
receivedStartOfHeadersback to summary
pack-priv final synchronized void receivedStartOfHeaders()
sendResetback to summary
public synchronized void sendReset()

Marks the stream as reset. This method will not change the stream state if:

  • The stream is already reset
  • The stream is already closed
Exceptions
IllegalStateException:
If the stream is in a state that does not permit resets
sentEndOfStreamback to summary
pack-priv final synchronized void sentEndOfStream()
sentHeadersback to summary
pack-priv final synchronized void sentHeaders()
sentPushPromiseback to summary
pack-priv final synchronized void sentPushPromise()
stateChangeback to summary
private void stateChange(StreamStateMachine.State oldState, StreamStateMachine.State newState)
org.apache.coyote.http2 back to summary

private final Enum StreamStateMachine.State

extends Enum<StreamStateMachine.State>
Class Inheritance

Field Summary

Modifier and TypeField and Description
private final boolean
private final boolean
private final boolean
public static final StreamStateMachine.State
public static final StreamStateMachine.State
public static final StreamStateMachine.State
public static final StreamStateMachine.State
public static final StreamStateMachine.State
private final boolean
private final Http2Error
private final Set<FrameType>
public static final StreamStateMachine.State
public static final StreamStateMachine.State
public static final StreamStateMachine.State
public static final StreamStateMachine.State
public static final StreamStateMachine.State
public static final StreamStateMachine.State

Constructor Summary

AccessConstructor and Description
private
State(boolean canRead, boolean canWrite, boolean canReset, boolean connectionErrorForInvalidFrame, Http2Error errorCode, FrameType... frameTypes)

Method Summary

Modifier and TypeMethod and Description
public boolean
public boolean
public boolean
public boolean
public boolean
public static StreamStateMachine.State
public static StreamStateMachine.State[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

canReadback to summary
private final boolean canRead
canResetback to summary
private final boolean canReset
canWriteback to summary
private final boolean canWrite
CLOSED_FINALback to summary
public static final StreamStateMachine.State CLOSED_FINAL
CLOSED_RST_RXback to summary
public static final StreamStateMachine.State CLOSED_RST_RX
CLOSED_RST_TXback to summary
public static final StreamStateMachine.State CLOSED_RST_TX
CLOSED_RXback to summary
public static final StreamStateMachine.State CLOSED_RX
CLOSED_TXback to summary
public static final StreamStateMachine.State CLOSED_TX
connectionErrorForInvalidFrameback to summary
private final boolean connectionErrorForInvalidFrame
errorCodeForInvalidFrameback to summary
private final Http2Error errorCodeForInvalidFrame
frameTypesPermittedback to summary
private final Set<FrameType> frameTypesPermitted
HALF_CLOSED_LOCALback to summary
public static final StreamStateMachine.State HALF_CLOSED_LOCAL
HALF_CLOSED_REMOTEback to summary
public static final StreamStateMachine.State HALF_CLOSED_REMOTE
IDLEback to summary
public static final StreamStateMachine.State IDLE
OPENback to summary
public static final StreamStateMachine.State OPEN
RESERVED_LOCALback to summary
public static final StreamStateMachine.State RESERVED_LOCAL
RESERVED_REMOTEback to summary
public static final StreamStateMachine.State RESERVED_REMOTE

Constructor Detail

Stateback to summary
private State(boolean canRead, boolean canWrite, boolean canReset, boolean connectionErrorForInvalidFrame, Http2Error errorCode, FrameType... frameTypes)

Method Detail

canReadback to summary
public boolean canRead()
canResetback to summary
public boolean canReset()
canWriteback to summary
public boolean canWrite()
isActiveback to summary
public boolean isActive()
isFrameTypePermittedback to summary
public boolean isFrameTypePermitted(FrameType frameType)
valueOfback to summary
public static StreamStateMachine.State valueOf(String name)
valuesback to summary
public static StreamStateMachine.State[] values()