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 WebSocketBehaviorprivate final org.eclipse.jetty.io.ByteBufferPoolprivate byteAre any flags in usestatic final intThe overhead (maximum) for a framing header.private final booleanprivate 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 TypeMethodDescriptionvoidassertFrameValid(Frame frame) voidconfigureFromExtensions(List<? extends Extension> exts) generateHeaderBytes(Frame frame) voidgenerateHeaderBytes(Frame frame, ByteBuffer buffer) voidgenerateWholeFrame(Frame frame, ByteBuffer buf) Generate the whole frame (header + payload copy) into a single ByteBuffer.org.eclipse.jetty.io.ByteBufferPoolbooleanbooleanbooleanvoidsetRsv1InUse(boolean rsv1InUse) voidsetRsv2InUse(boolean rsv2InUse) voidsetRsv3InUse(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
-