public class Parser
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
Parser.State |
Modifier and Type | Field and Description |
---|---|
private ByteBufferPool |
bufferPool |
private java.util.concurrent.atomic.LongAdder |
bytesIn |
private int |
cursor |
private byte |
flagsInUse
Is there an extension using RSV flag?
|
private WebSocketFrame |
frame |
private IncomingFrames |
incomingFramesHandler |
private static 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 and Description |
---|
Parser(WebSocketPolicy wspolicy,
ByteBufferPool bufferPool) |
Modifier and Type | Method and Description |
---|---|
private void |
assertSanePayloadLength(long len) |
void |
configureFromExtensions(java.util.List<? extends Extension> exts) |
long |
getBytesIn() |
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 payload
|
void |
parseSingleFrame(java.nio.ByteBuffer buffer) |
private void |
reset() |
void |
setIncomingFramesHandler(IncomingFrames incoming) |
java.lang.String |
toString() |
private static final Logger LOG
private final WebSocketPolicy policy
private final ByteBufferPool bufferPool
private final java.util.concurrent.atomic.LongAdder messagesIn
private final java.util.concurrent.atomic.LongAdder bytesIn
private Parser.State state
private int cursor
private WebSocketFrame frame
private boolean priorDataFrame
private java.nio.ByteBuffer payload
private int payloadLength
private PayloadProcessor maskProcessor
private byte flagsInUse
0100_0000 (0x40) = rsv1 0010_0000 (0x20) = rsv2 0001_0000 (0x10) = rsv3
private IncomingFrames incomingFramesHandler
public Parser(WebSocketPolicy wspolicy, ByteBufferPool bufferPool)
private void assertSanePayloadLength(long len)
public void configureFromExtensions(java.util.List<? extends Extension> exts)
public IncomingFrames getIncomingFramesHandler()
public WebSocketPolicy getPolicy()
public boolean isRsv1InUse()
public boolean isRsv2InUse()
public boolean isRsv3InUse()
protected void notifyFrame(Frame f) throws WebSocketException
WebSocketException
public void parse(java.nio.ByteBuffer buffer) throws WebSocketException
WebSocketException
public void parseSingleFrame(java.nio.ByteBuffer buffer) throws WebSocketException
WebSocketException
private void reset()
private boolean parseFrame(java.nio.ByteBuffer buffer)
Note the first byte (fin,rsv1,rsv2,rsv3,opcode) are parsed by the parse(ByteBuffer)
method
Not overridable
buffer
- the buffer to parse from.private boolean parsePayload(java.nio.ByteBuffer buffer)
buffer
- the payload bufferpublic void setIncomingFramesHandler(IncomingFrames incoming)
public long getMessagesIn()
public long getBytesIn()
public java.lang.String toString()
toString
in class java.lang.Object