Class Generator
java.lang.Object
org.eclipse.jetty.websocket.common.Generator
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 Summary
FieldsModifier and TypeFieldDescriptionprivate final WebSocketBehavior
private final org.eclipse.jetty.io.ByteBufferPool
private byte
Are any flags in usestatic final int
The overhead (maximum) for a framing header.private final boolean
private final boolean
-
Constructor Summary
ConstructorsConstructorDescriptionGenerator
(WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool) Construct Generator with provided policy and bufferPoolGenerator
(WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool, boolean validating) Construct Generator with provided policy and bufferPoolGenerator
(WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool, boolean validating, boolean readOnly) Construct Generator with provided policy and bufferPool -
Method Summary
Modifier and TypeMethodDescriptionvoid
assertFrameValid
(Frame frame) void
configureFromExtensions
(List<? extends Extension> exts) generateHeaderBytes
(Frame frame) void
generateHeaderBytes
(Frame frame, ByteBuffer buffer) void
generateWholeFrame
(Frame frame, ByteBuffer buf) Generate the whole frame (header + payload copy) into a single ByteBuffer.org.eclipse.jetty.io.ByteBufferPool
boolean
boolean
boolean
void
setRsv1InUse
(boolean rsv1InUse) void
setRsv2InUse
(boolean rsv2InUse) void
setRsv3InUse
(boolean rsv3InUse) toString()
-
Field Details
-
MAX_HEADER_LENGTH
public static final int MAX_HEADER_LENGTHThe overhead (maximum) for a framing header. Assuming a maximum sized payload with masking key.- See Also:
-
behavior
-
bufferPool
private final org.eclipse.jetty.io.ByteBufferPool bufferPool -
validating
private final boolean validating -
readOnly
private final boolean readOnly -
flagsInUse
private byte flagsInUseAre any flags in use0100_0000 (0x40) = rsv1 0010_0000 (0x20) = rsv2 0001_0000 (0x10) = rsv3
-
-
Constructor Details
-
Generator
Construct Generator with provided policy and bufferPool- Parameters:
policy
- the policy to usebufferPool
- the buffer pool to use
-
Generator
public Generator(WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool, boolean validating) Construct Generator with provided policy and bufferPool- Parameters:
policy
- the policy to usebufferPool
- the buffer pool to usevalidating
- true to enable RFC frame validation
-
Generator
public Generator(WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool, boolean validating, boolean readOnly) Construct Generator with provided policy and bufferPool- Parameters:
policy
- the policy to usebufferPool
- the buffer pool to usevalidating
- true to enable RFC frame validationreadOnly
- 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 Details
-
assertFrameValid
-
configureFromExtensions
-
generateHeaderBytes
-
generateHeaderBytes
-
generateWholeFrame
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 generatebuf
- the buffer to output the generated frame to
-
getBufferPool
public org.eclipse.jetty.io.ByteBufferPool getBufferPool() -
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
-