public class PerMessageDeflateFunction extends Object implements ExtensionFunction
permessage-deflate
WebSocket Extension.
This implementation supports parameters: server_no_context_takeover, client_no_context_takeover
.
This implementation does not support parameters: server_max_window_bits, client_max_window_bits
.
It uses the DEFLATE implementation algorithm packaged on Deflater
and Inflater
classes.
RSV1, RSV2, RSV3
Constructor and Description |
---|
PerMessageDeflateFunction(int deflaterLevel,
boolean compressContextTakeover,
boolean decompressContextTakeover)
Create a new
PerMessageDeflateExtension instance. |
Modifier and Type | Method and Description |
---|---|
void |
dispose()
Dispose this function.
|
boolean |
hasExtensionOpCode()
Validate if current extension defines a new WebSocket Opcode.
|
PooledByteBuffer |
transformForRead(PooledByteBuffer pooledBuffer,
StreamSourceFrameChannel channel,
boolean lastFragmentOfMessage)
Transform the supplied buffer per this extension.
|
PooledByteBuffer |
transformForWrite(PooledByteBuffer pooledBuffer,
StreamSinkFrameChannel channel,
boolean lastFrame)
Transform the supplied buffer per this extension.
|
int |
writeRsv(int rsv)
Add RSV bits (RSV1, RSV2, RSV3) to the current rsv status.
|
public PerMessageDeflateFunction(int deflaterLevel, boolean compressContextTakeover, boolean decompressContextTakeover)
PerMessageDeflateExtension
instance.deflaterLevel
- the level of configuration of DEFLATE algorithm implementationcompressContextTakeover
- flag for compressor context takeover or without compressor contextdecompressContextTakeover
- flag for decompressor context takeover or without decompressor contextpublic int writeRsv(int rsv)
ExtensionFunction
writeRsv
in interface ExtensionFunction
rsv
- current RSV bits statuspublic boolean hasExtensionOpCode()
ExtensionFunction
hasExtensionOpCode
in interface ExtensionFunction
true
if current extension defines specific Opcode
false
is current extension does not define specific Opcodepublic PooledByteBuffer transformForWrite(PooledByteBuffer pooledBuffer, StreamSinkFrameChannel channel, boolean lastFrame) throws IOException
ExtensionFunction
transformForWrite
in interface ExtensionFunction
pooledBuffer
- Buffer to transformchannel
- working channelIOException
public PooledByteBuffer transformForRead(PooledByteBuffer pooledBuffer, StreamSourceFrameChannel channel, boolean lastFragmentOfMessage) throws IOException
ExtensionFunction
transformForRead
in interface ExtensionFunction
pooledBuffer
- Buffer to transformchannel
- working channellastFragmentOfMessage
- If this frame is the last fragment of a message. Note that this may not be received for every message, if the message ends with an empty frameIOException
public void dispose()
ExtensionFunction
dispose
in interface ExtensionFunction
Copyright © 2020 JBoss by Red Hat. All rights reserved.