Class AbstractProcessorLight

  • All Implemented Interfaces:
    Processor
    Direct Known Subclasses:
    AbstractProcessor, UpgradeProcessorBase

    public abstract class AbstractProcessorLight
    extends java.lang.Object
    implements Processor
    This is a light-weight abstract processor implementation that is intended as a basis for all Processor implementations from the light-weight upgrade processors to the HTTP/AJP processors.
    • Constructor Detail

      • AbstractProcessorLight

        public AbstractProcessorLight()
    • Method Detail

      • process

        public AbstractEndpoint.Handler.SocketState process​(SocketWrapperBase<?> socketWrapper,
                                                            SocketEvent status)
                                                     throws java.io.IOException
        Description copied from interface: Processor
        Process a connection. This is called whenever an event occurs (e.g. more data arrives) that allows processing to continue for a connection that is not currently being processed.
        Specified by:
        process in interface Processor
        Parameters:
        socketWrapper - The connection to process
        status - The status of the connection that triggered this additional processing
        Returns:
        The state the caller should put the socket in when this method returns
        Throws:
        java.io.IOException - If an I/O error occurs during the processing of the request
      • addDispatch

        public void addDispatch​(DispatchType dispatchType)
      • getIteratorAndClearDispatches

        public java.util.Iterator<DispatchType> getIteratorAndClearDispatches()
      • clearDispatches

        protected void clearDispatches()
      • logAccess

        protected void logAccess​(SocketWrapperBase<?> socketWrapper)
                          throws java.io.IOException
        Add an entry to the access log for a failed connection attempt.
        Parameters:
        socketWrapper - The connection to process
        Throws:
        java.io.IOException - If an I/O error occurs during the processing of the request
      • service

        protected abstract AbstractEndpoint.Handler.SocketState service​(SocketWrapperBase<?> socketWrapper)
                                                                 throws java.io.IOException
        Service a 'standard' HTTP request. This method is called for both new requests and for requests that have partially read the HTTP request line or HTTP headers. Once the headers have been fully read this method is not called again until there is a new HTTP request to process. Note that the request type may change during processing which may result in one or more calls to dispatch(SocketEvent). Requests may be pipe-lined.
        Parameters:
        socketWrapper - The connection to process
        Returns:
        The state the caller should put the socket in when this method returns
        Throws:
        java.io.IOException - If an I/O error occurs during the processing of the request
      • dispatch

        protected abstract AbstractEndpoint.Handler.SocketState dispatch​(SocketEvent status)
                                                                  throws java.io.IOException
        Process an in-progress request that is not longer in standard HTTP mode. Uses currently include Servlet 3.0 Async and HTTP upgrade connections. Further uses may be added in the future. These will typically start as HTTP requests.
        Parameters:
        status - The event to process
        Returns:
        The state the caller should put the socket in when this method returns
        Throws:
        java.io.IOException - If an I/O error occurs during the processing of the request
      • getLog

        protected abstract Log getLog()