| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.coyote; |
| |
| /** |
| * ActionCodes represent callbacks from the servlet container to the coyote |
| * connector. Actions are implemented by ProtocolHandler, using the ActionHook |
| * interface. |
| * |
| * @see ProtocolHandler |
| * @see ActionHook |
| * @author Remy Maucherat |
| */ |
| public enum ActionCode { |
| ACK, |
| CLOSE, |
| COMMIT, |
| |
| /** |
| * 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. |
| */ |
| CLOSE_NOW, |
| |
| /** |
| * 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. |
| */ |
| CLIENT_FLUSH, |
| |
| RESET, |
| |
| /** |
| * Has the processor been placed into the error state? Note that the |
| * response may not have an appropriate error code set. |
| */ |
| IS_ERROR, |
| |
| /** |
| * Hook called if swallowing request input should be disabled. |
| * Example: Cancel a large file upload. |
| * |
| */ |
| DISABLE_SWALLOW_INPUT, |
| |
| /** |
| * Callback for lazy evaluation - extract the remote host address. |
| */ |
| REQ_HOST_ATTRIBUTE, |
| |
| /** |
| * Callback for lazy evaluation - extract the remote host infos (address, |
| * name, port) and local address. |
| */ |
| REQ_HOST_ADDR_ATTRIBUTE, |
| |
| /** |
| * Callback for lazy evaluation - extract the SSL-related attributes. |
| */ |
| REQ_SSL_ATTRIBUTE, |
| |
| /** |
| * Callback for lazy evaluation - extract the SSL-certificate (including |
| * forcing a re-handshake if necessary) |
| */ |
| REQ_SSL_CERTIFICATE, |
| |
| /** |
| * Callback for lazy evaluation - socket remote port. |
| */ |
| REQ_REMOTEPORT_ATTRIBUTE, |
| |
| /** |
| * Callback for lazy evaluation - socket local port. |
| */ |
| REQ_LOCALPORT_ATTRIBUTE, |
| |
| /** |
| * Callback for lazy evaluation - local address. |
| */ |
| REQ_LOCAL_ADDR_ATTRIBUTE, |
| |
| /** |
| * Callback for lazy evaluation - local address. |
| */ |
| REQ_LOCAL_NAME_ATTRIBUTE, |
| |
| /** |
| * Callback for setting FORM auth body replay |
| */ |
| REQ_SET_BODY_REPLAY, |
| |
| /** |
| * Callback for begin Comet processing. |
| */ |
| COMET_BEGIN, |
| |
| /** |
| * Callback for end Comet processing. |
| */ |
| COMET_END, |
| |
| /** |
| * Callback for getting the amount of available bytes. |
| */ |
| AVAILABLE, |
| |
| /** |
| * Callback for an asynchronous close of the Comet event |
| */ |
| COMET_CLOSE, |
| |
| /** |
| * Callback for setting the timeout asynchronously |
| */ |
| COMET_SETTIMEOUT, |
| |
| /** |
| * Callback to determine if the current request is a Comet request. |
| */ |
| IS_COMET, |
| |
| /** |
| * Callback for an async request. |
| */ |
| ASYNC_START, |
| |
| /** |
| * Callback for an async call to |
| * {@link javax.servlet.AsyncContext#dispatch()}. |
| */ |
| ASYNC_DISPATCH, |
| |
| /** |
| * Callback to indicate the the actual dispatch has started and that the |
| * async state needs change. |
| */ |
| ASYNC_DISPATCHED, |
| |
| /** |
| * Callback for an async call to |
| * {@link javax.servlet.AsyncContext#start(Runnable)}. |
| */ |
| ASYNC_RUN, |
| |
| /** |
| * Callback for an async call to |
| * {@link javax.servlet.AsyncContext#complete()}. |
| */ |
| ASYNC_COMPLETE, |
| |
| /** |
| * Callback to trigger the processing of an async timeout. |
| */ |
| ASYNC_TIMEOUT, |
| |
| /** |
| * Callback to trigger the error processing. |
| */ |
| ASYNC_ERROR, |
| |
| /** |
| * Callback for an async call to |
| * {@link javax.servlet.AsyncContext#setTimeout(long)} |
| */ |
| ASYNC_SETTIMEOUT, |
| |
| /** |
| * Callback to determine if async processing is in progress. |
| */ |
| ASYNC_IS_ASYNC, |
| |
| /** |
| * Callback to determine if async dispatch is in progress. |
| */ |
| ASYNC_IS_STARTED, |
| |
| /** |
| * Call back to determine if async complete is in progress. |
| */ |
| ASYNC_IS_COMPLETING, |
| |
| /** |
| * Callback to determine if async dispatch is in progress. |
| */ |
| ASYNC_IS_DISPATCHING, |
| |
| /** |
| * Callback to determine if async is timing out. |
| */ |
| ASYNC_IS_TIMINGOUT, |
| |
| /** |
| * Callback to determine if async is in error. |
| */ |
| ASYNC_IS_ERROR, |
| |
| /** |
| * Callback to trigger post processing. Typically only used during error |
| * handling to trigger essential processing that otherwise would be skipped. |
| */ |
| ASYNC_POST_PROCESS, |
| |
| /** |
| * Callback to trigger the HTTP upgrade process. |
| */ |
| UPGRADE, |
| |
| /** |
| * Indicator that Servlet is interested in being |
| * notified when data is available to be read |
| */ |
| NB_READ_INTEREST, |
| |
| /** |
| *Indicator that the Servlet is interested |
| *in being notified when it can write data |
| */ |
| NB_WRITE_INTEREST, |
| |
| /** |
| * Indicates if the request body has been fully read. |
| */ |
| REQUEST_BODY_FULLY_READ, |
| |
| /** |
| * Indicates that the container needs to trigger a call to onDataAvailable() |
| * for the registered non-blocking read listener. |
| */ |
| DISPATCH_READ, |
| |
| /** |
| * Indicates that the container needs to trigger a call to onWritePossible() |
| * for the registered non-blocking write listener. |
| */ |
| DISPATCH_WRITE, |
| |
| /** |
| * Execute any non-blocking dispatches that have been registered via |
| * {@link #DISPATCH_READ} or {@link #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. |
| */ |
| DISPATCH_EXECUTE, |
| |
| /** |
| * Trigger end of request processing (remaining input swallowed, write any |
| * remaining parts of the response etc.). |
| */ |
| END_REQUEST |
| } |