Class AbstractExtension
- All Implemented Interfaces:
Closeable,AutoCloseable,Extension,IncomingFrames,OutgoingFrames
- Direct Known Subclasses:
FragmentExtension,FrameCaptureExtension,IdentityExtension,PerMessageDeflateExtension,ValidationExtension
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionThe active configuration for this extension.protected ConfigurationgetName()TheSec-WebSocket-Extensionsname for this extension.voidinit(ExtensionConfig config, WebSocketComponents components) booleanUsed to indicate that the extension makes use of the RSV1 bit of the base websocket framing.booleanUsed to indicate that the extension makes use of the RSV2 bit of the base websocket framing.booleanUsed to indicate that the extension makes use of the RSV3 bit of the base websocket framing.protected voidnextIncomingFrame(Frame frame, Callback callback) protected voidnextOutgoingFrame(Frame frame, Callback callback, boolean batch) voidProcess the incoming frame.voidA frame, and optional callback, intended for the network layer.voidsetCoreSession(CoreSession coreSession) voidsetNextIncomingFrames(IncomingFrames nextIncoming) Set the nextIncomingFramesto call in the chain.voidsetNextOutgoingFrames(OutgoingFrames nextOutgoing) Set the nextOutgoingFramesto call in the chain.toString()
-
Constructor Details
-
AbstractExtension
public AbstractExtension()
-
-
Method Details
-
init
-
onFrame
Description copied from interface:IncomingFramesProcess the incoming frame.
Note: if you need to hang onto any information from the frame, be sure to copy it, as the information contained in the Frame will be released and/or reused by the implementation.
Failure of the callback will propagate the failure back to the
CoreSessionto fail the connection and attempt to send a closeFrameif one has not been sent.- Specified by:
onFramein interfaceIncomingFrames- Parameters:
frame- the frame to process.callback- the read completion.
-
sendFrame
Description copied from interface:OutgoingFramesA frame, and optional callback, intended for the network layer.Note: the frame can undergo many transformations in the various layers and extensions present in the implementation.
If you are implementing a mutation, you are obliged to handle the incoming WriteCallback appropriately.
- Specified by:
sendFramein interfaceOutgoingFrames- Parameters:
frame- the frame to eventually write to the network layer.callback- the callback to notify when the frame is written.batch- the batch mode requested by the sender.
-
getBufferPool
-
getConfig
Description copied from interface:ExtensionThe active configuration for this extension. -
getDeflaterPool
-
getInflaterPool
-
getName
Description copied from interface:ExtensionTheSec-WebSocket-Extensionsname for this extension.Also known as the
extension-tokenper Section 9.1. Negotiating Extensions. -
getNextIncoming
@ManagedAttribute(name="Next Incoming Frame Handler", readonly=true) public IncomingFrames getNextIncoming() -
getNextOutgoing
@ManagedAttribute(name="Next Outgoing Frame Handler", readonly=true) public OutgoingFrames getNextOutgoing() -
isRsv1User
public boolean isRsv1User()Used to indicate that the extension makes use of the RSV1 bit of the base websocket framing.This is used to adjust validation during parsing, as well as a checkpoint against 2 or more extensions all simultaneously claiming ownership of RSV1.
- Specified by:
isRsv1Userin interfaceExtension- Returns:
- true if extension uses RSV1 for its own purposes.
-
isRsv2User
public boolean isRsv2User()Used to indicate that the extension makes use of the RSV2 bit of the base websocket framing.This is used to adjust validation during parsing, as well as a checkpoint against 2 or more extensions all simultaneously claiming ownership of RSV2.
- Specified by:
isRsv2Userin interfaceExtension- Returns:
- true if extension uses RSV2 for its own purposes.
-
isRsv3User
public boolean isRsv3User()Used to indicate that the extension makes use of the RSV3 bit of the base websocket framing.This is used to adjust validation during parsing, as well as a checkpoint against 2 or more extensions all simultaneously claiming ownership of RSV3.
- Specified by:
isRsv3Userin interfaceExtension- Returns:
- true if extension uses RSV3 for its own purposes.
-
nextIncomingFrame
-
nextOutgoingFrame
-
setNextIncomingFrames
Description copied from interface:ExtensionSet the nextIncomingFramesto call in the chain.- Specified by:
setNextIncomingFramesin interfaceExtension- Parameters:
nextIncoming- the next incoming extension
-
setNextOutgoingFrames
Description copied from interface:ExtensionSet the nextOutgoingFramesto call in the chain.- Specified by:
setNextOutgoingFramesin interfaceExtension- Parameters:
nextOutgoing- the next outgoing extension
-
setCoreSession
- Specified by:
setCoreSessionin interfaceExtension- Parameters:
coreSession- theCoreSessionfor this Extension.
-
getCoreSession
-
getConfiguration
-
toString
-