Class CompositeExtensionFunction
- java.lang.Object
-
- io.undertow.websockets.extensions.CompositeExtensionFunction
-
- All Implemented Interfaces:
ExtensionFunction
public class CompositeExtensionFunction extends Object implements ExtensionFunction
-
-
Field Summary
-
Fields inherited from interface io.undertow.websockets.extensions.ExtensionFunction
RSV1, RSV2, RSV3
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ExtensionFunctioncompose(ExtensionFunction... functions)static ExtensionFunctioncompose(List<ExtensionFunction> functions)voiddispose()Dispose this function.booleanhasExtensionOpCode()Validate if current extension defines a new WebSocket Opcode.PooledByteBuffertransformForRead(PooledByteBuffer pooledBuffer, StreamSourceFrameChannel channel, boolean lastFragementOfMessage)Transform the supplied buffer per this extension.PooledByteBuffertransformForWrite(PooledByteBuffer pooledBuffer, StreamSinkFrameChannel channel, boolean lastFrame)Transform the supplied buffer per this extension.intwriteRsv(int rsv)Add RSV bits (RSV1, RSV2, RSV3) to the current rsv status.
-
-
-
Method Detail
-
compose
public static ExtensionFunction compose(List<ExtensionFunction> functions)
-
compose
public static ExtensionFunction compose(ExtensionFunction... functions)
-
hasExtensionOpCode
public boolean hasExtensionOpCode()
Description copied from interface:ExtensionFunctionValidate if current extension defines a new WebSocket Opcode.- Specified by:
hasExtensionOpCodein interfaceExtensionFunction- Returns:
trueif current extension defines specific Opcodefalseis current extension does not define specific Opcode- See Also:
- WebSocket Base Framing Protocol Reference
-
writeRsv
public int writeRsv(int rsv)
Description copied from interface:ExtensionFunctionAdd RSV bits (RSV1, RSV2, RSV3) to the current rsv status.- Specified by:
writeRsvin interfaceExtensionFunction- Parameters:
rsv- current RSV bits status- Returns:
- rsv status
-
transformForWrite
public PooledByteBuffer transformForWrite(PooledByteBuffer pooledBuffer, StreamSinkFrameChannel channel, boolean lastFrame) throws IOException
Description copied from interface:ExtensionFunctionTransform the supplied buffer per this extension. The buffer can be modified in place, or a new pooled buffer can be returned (in which case be sure to free the original buffer- Specified by:
transformForWritein interfaceExtensionFunction- Parameters:
pooledBuffer- Buffer to transformchannel- working channel- Returns:
- transformed buffer (may be the same one, just with modified contents)
- Throws:
IOException
-
transformForRead
public PooledByteBuffer transformForRead(PooledByteBuffer pooledBuffer, StreamSourceFrameChannel channel, boolean lastFragementOfMessage) throws IOException
Description copied from interface:ExtensionFunctionTransform the supplied buffer per this extension. The buffer can be modified in place, or a new pooled buffer can be returned (in which case be sure to free the original buffer- Specified by:
transformForReadin interfaceExtensionFunction- Parameters:
pooledBuffer- Buffer to transformchannel- working channellastFragementOfMessage- 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 frame- Returns:
- transformed buffer (may be the same one, just with modified contents)
- Throws:
IOException
-
dispose
public void dispose()
Description copied from interface:ExtensionFunctionDispose this function. Called upon connection closure- Specified by:
disposein interfaceExtensionFunction
-
-