Class Parser
- java.lang.Object
-
- org.eclipse.jetty.websocket.common.Parser
-
public class Parser extends java.lang.Object
Parsing of a frames in WebSocket land.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
Parser.State
-
Field Summary
Fields Modifier and Type Field Description private org.eclipse.jetty.io.ByteBufferPool
bufferPool
private int
cursor
private byte
flagsInUse
Is there an extension using RSV flag?private WebSocketFrame
frame
private IncomingFrames
incomingFramesHandler
private static org.eclipse.jetty.util.log.Logger
LOG
private PayloadProcessor
maskProcessor
private java.util.concurrent.atomic.LongAdder
messagesIn
private java.nio.ByteBuffer
payload
private int
payloadLength
private WebSocketPolicy
policy
private boolean
priorDataFrame
private Parser.State
state
-
Constructor Summary
Constructors Constructor Description Parser(WebSocketPolicy wspolicy, org.eclipse.jetty.io.ByteBufferPool bufferPool)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
assertSanePayloadLength(long len)
void
configureFromExtensions(java.util.List<? extends Extension> exts)
IncomingFrames
getIncomingFramesHandler()
long
getMessagesIn()
WebSocketPolicy
getPolicy()
boolean
isRsv1InUse()
boolean
isRsv2InUse()
boolean
isRsv3InUse()
protected void
notifyFrame(Frame f)
void
parse(java.nio.ByteBuffer buffer)
private boolean
parseFrame(java.nio.ByteBuffer buffer)
Parse the base framing protocol buffer.private boolean
parsePayload(java.nio.ByteBuffer buffer)
Implementation specific parsing of a payloadvoid
parseSingleFrame(java.nio.ByteBuffer buffer)
private void
reset()
void
setIncomingFramesHandler(IncomingFrames incoming)
java.lang.String
toString()
-
-
-
Field Detail
-
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 java.util.concurrent.atomic.LongAdder messagesIn
-
state
private Parser.State state
-
cursor
private int cursor
-
frame
private WebSocketFrame frame
-
priorDataFrame
private boolean priorDataFrame
-
payload
private java.nio.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 Detail
-
Parser
public Parser(WebSocketPolicy wspolicy, org.eclipse.jetty.io.ByteBufferPool bufferPool)
-
-
Method Detail
-
assertSanePayloadLength
private void assertSanePayloadLength(long len)
-
configureFromExtensions
public void configureFromExtensions(java.util.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(java.nio.ByteBuffer buffer) throws WebSocketException
- Throws:
WebSocketException
-
parseSingleFrame
public void parseSingleFrame(java.nio.ByteBuffer buffer) throws WebSocketException
- Throws:
WebSocketException
-
reset
private void reset()
-
parseFrame
private boolean parseFrame(java.nio.ByteBuffer buffer)
Parse the base framing protocol buffer.Note the first byte (fin,rsv1,rsv2,rsv3,opcode) are parsed by the
parse(ByteBuffer)
methodNot 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(java.nio.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 java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-