Package org.apache.coyote

## Enum ActionCode

- java.lang.Object
- - java.lang.Enum<ActionCode>
  - - org.apache.coyote.ActionCode

All Implemented Interfaces:
  `Serializable`, `Comparable<ActionCode>`

    public enum ActionCode
    extends Enum<ActionCode>

ActionCodes represent callbacks from the servlet container to the coyote connector. Actions are implemented by ProtocolHandler, using the ActionHook interface.

Author:
  Remy Maucherat
See Also:
  `ProtocolHandler`, `ActionHook`

### Enum Constant Summary

Enum Constants
`ACK`
`ASYNC_COMPLETE` Callback for an async call to `AsyncContext.complete()`.
`ASYNC_DISPATCH` Callback for an async call to `AsyncContext.dispatch()`.
`ASYNC_DISPATCHED` Callback to indicate the the actual dispatch has started and that the async state needs change.
`ASYNC_ERROR` Callback to trigger the error processing.
`ASYNC_IS_ASYNC` Callback to determine if async processing is in progress.
`ASYNC_IS_COMPLETING` Call back to determine if async complete is in progress.
`ASYNC_IS_DISPATCHING` Callback to determine if async dispatch is in progress.
`ASYNC_IS_ERROR` Callback to determine if async is in error.
`ASYNC_IS_STARTED` Callback to determine if async dispatch is in progress.
`ASYNC_IS_TIMINGOUT` Callback to determine if async is timing out.
`ASYNC_POST_PROCESS` Callback to trigger post processing.
`ASYNC_RUN` Callback for an async call to `AsyncContext.start(Runnable)`.
`ASYNC_SETTIMEOUT` Callback for an async call to `AsyncContext.setTimeout(long)`
`ASYNC_START` Callback for an async request.
`ASYNC_TIMEOUT` Callback to trigger the processing of an async timeout.
`AVAILABLE` Callback for getting the amount of available bytes.
`CLIENT_FLUSH` A flush() operation originated by the client ( i.e. a flush() on the servlet output stream or writer, called by a servlet ).
`CLOSE`
`CLOSE_NOW` A serious error occurred from which it is not possible to recover safely.
`COMMIT`
`DISABLE_SWALLOW_INPUT` Hook called if swallowing request input should be disabled.
`DISPATCH_EXECUTE` Execute any non-blocking dispatches that have been registered via `DISPATCH_READ` or `DISPATCH_WRITE`.
`DISPATCH_READ` Indicates that the container needs to trigger a call to onDataAvailable() for the registered non-blocking read listener.
`DISPATCH_WRITE` Indicates that the container needs to trigger a call to onWritePossible() for the registered non-blocking write listener.
`IS_ERROR` Has the processor been placed into the error state?
`IS_IO_ALLOWED` The processor may have been placed into an error state and some error states do not permit any further I/O.
`IS_PUSH_SUPPORTED` Is server push supported and allowed for the current request?
`IS_TRAILER_FIELDS_READY` Are the request trailer fields ready to be read?
`IS_TRAILER_FIELDS_SUPPORTED` Are HTTP trailer fields supported for the current response?
`NB_READ_INTEREST` Indicator that Servlet is interested in being notified when data is available to be read.
`NB_WRITE_INTEREST` Used with non-blocking writes to determine if a write is currently allowed (sets passed parameter to `true`) or not (sets passed parameter to `false`).
`PROTOCOL_REQUEST_ID` Obtain the request identifier for this request as defined by the protocol in use.
`PUSH_REQUEST` Push a request on behalf of the client of the current request.
`REQ_HOST_ADDR_ATTRIBUTE` Callback for lazy evaluation - extract the remote host address.
`REQ_HOST_ATTRIBUTE` Callback for lazy evaluation - extract the remote host name and address.
`REQ_LOCAL_ADDR_ATTRIBUTE` Callback for lazy evaluation - local address.
`REQ_LOCAL_NAME_ATTRIBUTE` Callback for lazy evaluation - local address.
`REQ_LOCALPORT_ATTRIBUTE` Callback for lazy evaluation - socket local port.
`REQ_PEER_ADDR_ATTRIBUTE` Callback for lazy evaluation - extract the connection peer address.
`REQ_REMOTEPORT_ATTRIBUTE` Callback for lazy evaluation - socket remote port.
`REQ_SET_BODY_REPLAY` Callback for setting FORM auth body replay
`REQ_SSL_ATTRIBUTE` Callback for lazy evaluation - extract the SSL-related attributes including the client certificate if present.
`REQ_SSL_CERTIFICATE` Force a TLS re-handshake and make the resulting client certificate (if any) available as a request attribute.
`REQUEST_BODY_FULLY_READ` Indicates if the request body has been fully read.
`SERVLET_CONNECTION` Obtain the servlet connection instance for the network connection supporting the current request.
`UPGRADE` Callback to trigger the HTTP upgrade process.

### Method Summary

All Methods Static Methods Concrete Methods
`static ActionCode` `valueOf​(String name)` Returns the enum constant of this type with the specified name.
`static ActionCode[]` `values()` Returns an array containing the constants of this enum type, in the order they are declared.

### Methods inherited from class java.lang.Enum

`clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Enum Constant Detail

#### ACK

    public static final ActionCode ACK

#### CLOSE

    public static final ActionCode CLOSE

#### COMMIT

    public static final ActionCode COMMIT

#### CLOSE_NOW

    public static final ActionCode CLOSE_NOW

A serious error occurred from which it is not possible to recover safely. Further attempts to write to the response should be ignored and the connection needs to be closed as soon as possible. This can also be used to forcibly close a connection if an error occurs after the response has been committed.

#### CLIENT_FLUSH

    public static final ActionCode CLIENT_FLUSH

A flush() operation originated by the client ( i.e. a flush() on the servlet output stream or writer, called by a servlet ). Argument is the Response.

#### IS_ERROR

    public static final ActionCode IS_ERROR

Has the processor been placed into the error state? Note that the response may not have an appropriate error code set.

#### IS_IO_ALLOWED

    public static final ActionCode IS_IO_ALLOWED

The processor may have been placed into an error state and some error states do not permit any further I/O. Is I/O currently allowed?

#### DISABLE_SWALLOW_INPUT

    public static final ActionCode DISABLE_SWALLOW_INPUT

Hook called if swallowing request input should be disabled. Example: Cancel a large file upload.

#### REQ_HOST_ATTRIBUTE

    public static final ActionCode REQ_HOST_ATTRIBUTE

Callback for lazy evaluation - extract the remote host name and address.

#### REQ_HOST_ADDR_ATTRIBUTE

    public static final ActionCode REQ_HOST_ADDR_ATTRIBUTE

Callback for lazy evaluation - extract the remote host address.

#### REQ_PEER_ADDR_ATTRIBUTE

    public static final ActionCode REQ_PEER_ADDR_ATTRIBUTE

Callback for lazy evaluation - extract the connection peer address.

#### REQ_SSL_ATTRIBUTE

    public static final ActionCode REQ_SSL_ATTRIBUTE

Callback for lazy evaluation - extract the SSL-related attributes including the client certificate if present.

#### REQ_SSL_CERTIFICATE

    public static final ActionCode REQ_SSL_CERTIFICATE

Force a TLS re-handshake and make the resulting client certificate (if any) available as a request attribute.

#### REQ_REMOTEPORT_ATTRIBUTE

    public static final ActionCode REQ_REMOTEPORT_ATTRIBUTE

Callback for lazy evaluation - socket remote port.

#### REQ_LOCALPORT_ATTRIBUTE

    public static final ActionCode REQ_LOCALPORT_ATTRIBUTE

Callback for lazy evaluation - socket local port.

#### REQ_LOCAL_ADDR_ATTRIBUTE

    public static final ActionCode REQ_LOCAL_ADDR_ATTRIBUTE

Callback for lazy evaluation - local address.

#### REQ_LOCAL_NAME_ATTRIBUTE

    public static final ActionCode REQ_LOCAL_NAME_ATTRIBUTE

Callback for lazy evaluation - local address.

#### REQ_SET_BODY_REPLAY

    public static final ActionCode REQ_SET_BODY_REPLAY

Callback for setting FORM auth body replay

#### AVAILABLE

    public static final ActionCode AVAILABLE

Callback for getting the amount of available bytes.

#### ASYNC_START

    public static final ActionCode ASYNC_START

Callback for an async request.

#### ASYNC_DISPATCH

    public static final ActionCode ASYNC_DISPATCH

Callback for an async call to `AsyncContext.dispatch()`.

#### ASYNC_DISPATCHED

    public static final ActionCode ASYNC_DISPATCHED

Callback to indicate the the actual dispatch has started and that the async state needs change.

#### ASYNC_RUN

    public static final ActionCode ASYNC_RUN

Callback for an async call to `AsyncContext.start(Runnable)`.

#### ASYNC_COMPLETE

    public static final ActionCode ASYNC_COMPLETE

Callback for an async call to `AsyncContext.complete()`.

#### ASYNC_TIMEOUT

    public static final ActionCode ASYNC_TIMEOUT

Callback to trigger the processing of an async timeout.

#### ASYNC_ERROR

    public static final ActionCode ASYNC_ERROR

Callback to trigger the error processing.

#### ASYNC_SETTIMEOUT

    public static final ActionCode ASYNC_SETTIMEOUT

Callback for an async call to `AsyncContext.setTimeout(long)`

#### ASYNC_IS_ASYNC

    public static final ActionCode ASYNC_IS_ASYNC

Callback to determine if async processing is in progress.

#### ASYNC_IS_STARTED

    public static final ActionCode ASYNC_IS_STARTED

Callback to determine if async dispatch is in progress.

#### ASYNC_IS_COMPLETING

    public static final ActionCode ASYNC_IS_COMPLETING

Call back to determine if async complete is in progress.

#### ASYNC_IS_DISPATCHING

    public static final ActionCode ASYNC_IS_DISPATCHING

Callback to determine if async dispatch is in progress.

#### ASYNC_IS_TIMINGOUT

    public static final ActionCode ASYNC_IS_TIMINGOUT

Callback to determine if async is timing out.

#### ASYNC_IS_ERROR

    public static final ActionCode ASYNC_IS_ERROR

Callback to determine if async is in error.

#### ASYNC_POST_PROCESS

    public static final ActionCode ASYNC_POST_PROCESS

Callback to trigger post processing. Typically only used during error handling to trigger essential processing that otherwise would be skipped.

#### UPGRADE

    public static final ActionCode UPGRADE

Callback to trigger the HTTP upgrade process.

#### NB_READ_INTEREST

    public static final ActionCode NB_READ_INTEREST

Indicator that Servlet is interested in being notified when data is available to be read.

#### NB_WRITE_INTEREST

    public static final ActionCode NB_WRITE_INTEREST

Used with non-blocking writes to determine if a write is currently allowed (sets passed parameter to `true`) or not (sets passed parameter to `false`). If a write is not allowed then callback will be triggered at some future point when write becomes possible again.

#### REQUEST_BODY_FULLY_READ

    public static final ActionCode REQUEST_BODY_FULLY_READ

Indicates if the request body has been fully read.

#### DISPATCH_READ

    public static final ActionCode DISPATCH_READ

Indicates that the container needs to trigger a call to onDataAvailable() for the registered non-blocking read listener.

#### DISPATCH_WRITE

    public static final ActionCode DISPATCH_WRITE

Indicates that the container needs to trigger a call to onWritePossible() for the registered non-blocking write listener.

#### DISPATCH_EXECUTE

    public static final ActionCode DISPATCH_EXECUTE

Execute any non-blocking dispatches that have been registered via `DISPATCH_READ` or `DISPATCH_WRITE`. Typically required when the non-blocking listeners are configured on a thread where the processing wasn't triggered by a read or write event on the socket.

#### IS_PUSH_SUPPORTED

    public static final ActionCode IS_PUSH_SUPPORTED

Is server push supported and allowed for the current request?

#### PUSH_REQUEST

    public static final ActionCode PUSH_REQUEST

Push a request on behalf of the client of the current request.

#### IS_TRAILER_FIELDS_READY

    public static final ActionCode IS_TRAILER_FIELDS_READY

Are the request trailer fields ready to be read? Note that this returns true if it is known that request trailer fields are not supported so an empty collection of trailers can then be read.

#### IS_TRAILER_FIELDS_SUPPORTED

    public static final ActionCode IS_TRAILER_FIELDS_SUPPORTED

Are HTTP trailer fields supported for the current response? Note that once an HTTP/1.1 response has been committed, it will no longer support trailer fields.

#### PROTOCOL_REQUEST_ID

    public static final ActionCode PROTOCOL_REQUEST_ID

Obtain the request identifier for this request as defined by the protocol in use. Note that some protocols do not define such an identifier. E.g. this will be Stream ID for HTTP/2.

#### SERVLET_CONNECTION

    public static final ActionCode SERVLET_CONNECTION

Obtain the servlet connection instance for the network connection supporting the current request.

### Method Detail

#### values

    public static ActionCode[] values()

Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

    for (ActionCode c : ActionCode.values())
        System.out.println(c);

Returns:
  an array containing the constants of this enum type, in the order they are declared

#### valueOf

    public static ActionCode valueOf​(String name)

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum type has no constant with the specified name
  `NullPointerException` - if the argument is null