Class Generator


  • public class Generator
    extends java.lang.Object
    Generating a frame in WebSocket land.
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-------+-+-------------+-------------------------------+
       |F|R|R|R| opcode|M| Payload len |    Extended payload length    |
       |I|S|S|S|  (4)  |A|     (7)     |             (16/64)           |
       |N|V|V|V|       |S|             |   (if payload len==126/127)   |
       | |1|2|3|       |K|             |                               |
       +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
       |     Extended payload length continued, if payload len == 127  |
       + - - - - - - - - - - - - - - - +-------------------------------+
       |                               |Masking-key, if MASK set to 1  |
       +-------------------------------+-------------------------------+
       | Masking-key (continued)       |          Payload Data         |
       +-------------------------------- - - - - - - - - - - - - - - - +
       :                     Payload Data continued ...                :
       + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
       |                     Payload Data continued ...                |
       +---------------------------------------------------------------+
     
    • Field Detail

      • MAX_HEADER_LENGTH

        public static final int MAX_HEADER_LENGTH
        The overhead (maximum) for a framing header. Assuming a maximum sized payload with masking key.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Generator

        public Generator​(WebSocketPolicy policy,
                         ByteBufferPool bufferPool)
        Construct Generator with provided policy and bufferPool
        Parameters:
        policy - the policy to use
        bufferPool - the buffer pool to use
      • Generator

        public Generator​(WebSocketPolicy policy,
                         ByteBufferPool bufferPool,
                         boolean validating)
        Construct Generator with provided policy and bufferPool
        Parameters:
        policy - the policy to use
        bufferPool - the buffer pool to use
        validating - true to enable RFC frame validation
      • Generator

        public Generator​(WebSocketPolicy policy,
                         ByteBufferPool bufferPool,
                         boolean validating,
                         boolean readOnly)
        Construct Generator with provided policy and bufferPool
        Parameters:
        policy - the policy to use
        bufferPool - the buffer pool to use
        validating - true to enable RFC frame validation
        readOnly - true if generator is to treat frames as read-only and not modify them. Useful for debugging purposes, but not generally for runtime use.
    • Method Detail

      • assertFrameValid

        public void assertFrameValid​(Frame frame)
      • configureFromExtensions

        public void configureFromExtensions​(java.util.List<? extends Extension> exts)
      • generateHeaderBytes

        public java.nio.ByteBuffer generateHeaderBytes​(Frame frame)
      • generateHeaderBytes

        public void generateHeaderBytes​(Frame frame,
                                        java.nio.ByteBuffer buffer)
      • generateWholeFrame

        public void generateWholeFrame​(Frame frame,
                                       java.nio.ByteBuffer buf)
        Generate the whole frame (header + payload copy) into a single ByteBuffer.

        Note: This is slow, moves lots of memory around. Only use this if you must (such as in unit testing).

        Parameters:
        frame - the frame to generate
        buf - the buffer to output the generated frame to
      • setRsv1InUse

        public void setRsv1InUse​(boolean rsv1InUse)
      • setRsv2InUse

        public void setRsv2InUse​(boolean rsv2InUse)
      • setRsv3InUse

        public void setRsv3InUse​(boolean rsv3InUse)
      • isRsv1InUse

        public boolean isRsv1InUse()
      • isRsv2InUse

        public boolean isRsv2InUse()
      • isRsv3InUse

        public boolean isRsv3InUse()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object