Class Parser

java.lang.Object
org.eclipse.jetty.websocket.common.Parser

public class Parser extends Object
Parsing of a frames in WebSocket land.
  • Field Details

    • LOG

      private static final org.eclipse.jetty.util.log.Logger LOG
    • policy

      private final WebSocketPolicy policy
    • bufferPool

      private final org.eclipse.jetty.io.ByteBufferPool bufferPool
    • messagesIn

      private final LongAdder messagesIn
    • state

      private Parser.State state
    • cursor

      private int cursor
    • frame

      private WebSocketFrame frame
    • priorDataFrame

      private boolean priorDataFrame
    • payload

      private ByteBuffer payload
    • payloadLength

      private int payloadLength
    • maskProcessor

      private PayloadProcessor maskProcessor
    • flagsInUse

      private byte flagsInUse
      Is there an extension using RSV flag?

         0100_0000 (0x40) = rsv1
         0010_0000 (0x20) = rsv2
         0001_0000 (0x10) = rsv3
       
    • incomingFramesHandler

      private IncomingFrames incomingFramesHandler
  • Constructor Details

    • Parser

      public Parser(WebSocketPolicy wspolicy, org.eclipse.jetty.io.ByteBufferPool bufferPool)
  • Method Details

    • assertSanePayloadLength

      private void assertSanePayloadLength(long len)
    • configureFromExtensions

      public void configureFromExtensions(List<? extends Extension> exts)
    • getIncomingFramesHandler

      public IncomingFrames getIncomingFramesHandler()
    • getPolicy

      public WebSocketPolicy getPolicy()
    • isRsv1InUse

      public boolean isRsv1InUse()
    • isRsv2InUse

      public boolean isRsv2InUse()
    • isRsv3InUse

      public boolean isRsv3InUse()
    • notifyFrame

      protected void notifyFrame(Frame f) throws WebSocketException
      Throws:
      WebSocketException
    • parse

      public void parse(ByteBuffer buffer) throws WebSocketException
      Throws:
      WebSocketException
    • parseSingleFrame

      public void parseSingleFrame(ByteBuffer buffer) throws WebSocketException
      Throws:
      WebSocketException
    • reset

      private void reset()
    • parseFrame

      private boolean parseFrame(ByteBuffer buffer)
      Parse the base framing protocol buffer.

      Note the first byte (fin,rsv1,rsv2,rsv3,opcode) are parsed by the parse(ByteBuffer) method

      Not overridable

      Parameters:
      buffer - the buffer to parse from.
      Returns:
      true if done parsing base framing protocol and ready for parsing of the payload. false if incomplete parsing of base framing protocol.
    • parsePayload

      private boolean parsePayload(ByteBuffer buffer)
      Implementation specific parsing of a payload
      Parameters:
      buffer - the payload buffer
      Returns:
      true if payload is done reading, false if incomplete
    • setIncomingFramesHandler

      public void setIncomingFramesHandler(IncomingFrames incoming)
    • getMessagesIn

      public long getMessagesIn()
    • toString

      public String toString()
      Overrides:
      toString in class Object