Interface Processor

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean checkAsyncTimeoutGeneration()
      Check to see if the async generation (each cycle of async increments the generation of the AsyncStateMachine) is the same as the generation when the most recent async timeout was triggered.
      java.nio.ByteBuffer getLeftoverInput()
      Allows retrieving additional input during the upgrade process.
      Request getRequest()
      Gets the request associated with this processor.
      UpgradeToken getUpgradeToken()
      Generate an upgrade token.
      boolean isAsync()
      Checks if the Processor is in async state.
      boolean isUpgrade()
      Checks if the Processor is processing an upgrade request.
      void pause()
      Informs the processor that the underlying I/O layer has stopped accepting new connections.
      AbstractEndpoint.Handler.SocketState process​(SocketWrapperBase<?> socketWrapper, SocketEvent status)
      Process a connection.
      void recycle()
      Recycle the processor, ready for the next request which may be on the same connection or a different connection.
      void setSslSupport​(SSLSupport sslSupport)
      Set the SSL information for this HTTP connection.
      void timeoutAsync​(long now)
      Check this processor to see if the timeout has expired and process a timeout if that is that case.
    • Method Detail

      • process

        AbstractEndpoint.Handler.SocketState process​(SocketWrapperBase<?> socketWrapper,
                                                     SocketEvent status)
                                              throws java.io.IOException
        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.
        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
      • getUpgradeToken

        UpgradeToken getUpgradeToken()
        Generate an upgrade token.
        Returns:
        An upgrade token encapsulating the information required to process the upgrade request
        Throws:
        java.lang.IllegalStateException - if this is called on a Processor that does not support upgrading
      • isUpgrade

        boolean isUpgrade()
        Checks if the Processor is processing an upgrade request.
        Returns:
        true if the Processor is currently processing an upgrade request, otherwise false
      • isAsync

        boolean isAsync()
        Checks if the Processor is in async state.
        Returns:
        true if the Processor state is async, otherwise false
      • timeoutAsync

        void timeoutAsync​(long now)
        Check this processor to see if the timeout has expired and process a timeout if that is that case.

        Note: The name of this method originated with the Servlet 3.0 asynchronous processing but evolved over time to represent a timeout that is triggered independently of the socket read/write timeouts.

        Parameters:
        now - The time (as returned by System.currentTimeMillis()) to use as the current time to determine whether the timeout has expired. If negative, the timeout will always be treated as if it has expired.
      • getRequest

        Request getRequest()
        Gets the request associated with this processor.
        Returns:
        The request associated with this processor.
      • recycle

        void recycle()
        Recycle the processor, ready for the next request which may be on the same connection or a different connection.
      • setSslSupport

        void setSslSupport​(SSLSupport sslSupport)
        Set the SSL information for this HTTP connection.
        Parameters:
        sslSupport - The SSL support object to use for this connection
      • getLeftoverInput

        java.nio.ByteBuffer getLeftoverInput()
        Allows retrieving additional input during the upgrade process.
        Returns:
        leftover bytes
        Throws:
        java.lang.IllegalStateException - if this is called on a Processor that does not support upgrading
      • pause

        void pause()
        Informs the processor that the underlying I/O layer has stopped accepting new connections. This is primarily intended to enable processors that use multiplexed connections to prevent further 'streams' being added to an existing multiplexed connection.
      • checkAsyncTimeoutGeneration

        boolean checkAsyncTimeoutGeneration()
        Check to see if the async generation (each cycle of async increments the generation of the AsyncStateMachine) is the same as the generation when the most recent async timeout was triggered. This is intended to be used to avoid unnecessary processing.
        Returns:
        true If the async generation has not changed since the async timeout was triggered