Class Generator
- java.lang.Object
-
- org.eclipse.jetty.websocket.common.Generator
-
public class Generator extends 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 Summary
Fields Modifier and Type Field Description static intMAX_HEADER_LENGTHThe overhead (maximum) for a framing header.
-
Constructor Summary
Constructors Constructor Description Generator(org.eclipse.jetty.websocket.api.WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool)Construct Generator with provided policy and bufferPoolGenerator(org.eclipse.jetty.websocket.api.WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool, boolean validating)Construct Generator with provided policy and bufferPoolGenerator(org.eclipse.jetty.websocket.api.WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool, boolean validating, boolean readOnly)Construct Generator with provided policy and bufferPool
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidassertFrameValid(org.eclipse.jetty.websocket.api.extensions.Frame frame)voidconfigureFromExtensions(List<? extends org.eclipse.jetty.websocket.api.extensions.Extension> exts)ByteBuffergenerateHeaderBytes(org.eclipse.jetty.websocket.api.extensions.Frame frame)voidgenerateHeaderBytes(org.eclipse.jetty.websocket.api.extensions.Frame frame, ByteBuffer buffer)voidgenerateWholeFrame(org.eclipse.jetty.websocket.api.extensions.Frame frame, ByteBuffer buf)Generate the whole frame (header + payload copy) into a single ByteBuffer.org.eclipse.jetty.io.ByteBufferPoolgetBufferPool()booleanisRsv1InUse()booleanisRsv2InUse()booleanisRsv3InUse()voidsetRsv1InUse(boolean rsv1InUse)voidsetRsv2InUse(boolean rsv2InUse)voidsetRsv3InUse(boolean rsv3InUse)StringtoString()
-
-
-
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(org.eclipse.jetty.websocket.api.WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool)Construct Generator with provided policy and bufferPool- Parameters:
policy- the policy to usebufferPool- the buffer pool to use
-
Generator
public Generator(org.eclipse.jetty.websocket.api.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(org.eclipse.jetty.websocket.api.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 Detail
-
assertFrameValid
public void assertFrameValid(org.eclipse.jetty.websocket.api.extensions.Frame frame)
-
configureFromExtensions
public void configureFromExtensions(List<? extends org.eclipse.jetty.websocket.api.extensions.Extension> exts)
-
generateHeaderBytes
public ByteBuffer generateHeaderBytes(org.eclipse.jetty.websocket.api.extensions.Frame frame)
-
generateHeaderBytes
public void generateHeaderBytes(org.eclipse.jetty.websocket.api.extensions.Frame frame, ByteBuffer buffer)
-
generateWholeFrame
public void generateWholeFrame(org.eclipse.jetty.websocket.api.extensions.Frame frame, 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 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()
-
-